s_log_safe开源log库
2026/7/29 17:16:34 网站建设 项目流程

s_log_safe开源log库

s_log_safe库是一个采用MIT License协议开源的、小巧的、基于s_log(GitHub - smallerxuan/s_log: 一个小巧的嵌入式log库,纯C语言实现,可以方便的进行移植、使用。支持`log输出等级控制`功能、`log重定向`功能、`彩色log输出`功能,使用灵活方便、简单快捷。 · GitHub)开源库和s_ring_buffer(GitHub - smallerxuan/s_ring_buffer: s_ring_buffer是一个小巧的有锁环形缓冲区实现,读写锁分离,性能更强劲。支持多读、多写同时操作;支持动态(指定元素池构造器与元素池析构器)和静态(不指定元素池构造器与元素池析构器)创建环形缓冲区的元素池;指定元素大小可以操作指定大小的元素对象(单位byte),如:char、int、long、bool、struct、point等。 · GitHub)开源库打造的一款线程安全的嵌入式log库,纯C语言实现,移植、使用方便、快捷。在s_log原有的输出等级控制功能、log重定向功能、彩色log输出功能基础上还提供了多线程安全支持。

仓库地址:GitHub - smallerxuan/s_log_safe: 一个采用MIT License协议开源的、小巧的、基于s_log (https://github.com/smallerxuan/s_log.git) 开源库和s_ring_buffer (https://github.com/smallerxuan/s_ring_buffer.git) 开源库打造的一款线程安全的嵌入式log库,纯C语言实现,移植、使用方便、快捷。在s_log原有的输出等级控制功能、log重定向功能、彩色log输出功能基础之上提供了线程安全支持。 · GitHub

s_log_safe用户接口

s_log 包含如下用户接口:s_log_safe_init()、s_log_safe_deinit()、s_log_safe_output_pool_cap_get()、s_log_safe_output_pool_used_get()、s_log_safe_tag()、s_log_safe_a()、s_log_safe_v()、s_log_safe_e()、s_log_safe_w()、s_log_safe_t()、s_log_safe_i()、s_log_safe_d()、s_log_safe_out()。

s_log_safe配置、使用

s_log_safe中的 s_log_safe_cfg.h文件包含了用户的使用配置宏,主要包括:

1、s_log_safe使能 S_LOG_SAFE_ENABLE

2、s_log_safe色彩控制使能 S_LOG_SAFE_COLOR_OPEN

3、s_log_safe通过printf输出 S_LOG_SAFE_OUT_BY_PRINTF

4、s_log_safe输出单个缓冲最大字节数 S_LOG_SAFE_BUFF_LIMIT

5、s_log_safe 最大缓冲log条数 S_LOG_SAFE_POOL_LIMIT

6、s_log_safe空闲间隔时间(单位ms) S_LOG_SAFE_OUTPUT_IDLE_TIME

7、s_log_safe插入超时时间 S_LOG_SAFE_POOL_INSERT_TIME_LIMIT

8、s_log_safe取出超时时间 S_LOG_SAFE_POOL_REMOVE_TIME_LIMIT

9、s_log_safe输出级别控制 S_LOG_SAFE_OPT_LVL

10、s_log_safe 线程优先级 S_LOG_SAFE_THREAD_PRIORITY

11、s_log_safe 线程堆栈大小 S_LOG_SAFE_THREAD_STACK_SIZE

12、s_log_safe 线程名 S_LOG_SAFE_THREAD_NAME

在需要使用s_log_safe的文件、模块中包含头文件 s_log_safe.h,并通过s_log_safe_tag()接口定义一个tag,然后根据需要使用不同等级的log接口即可【先要通过s_log_safe_init()接口完成相关初始化】。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询