轻量级格式化的日志库.
- 最低支持c99,无任何仓库依赖
- 支持不同等级的颜色输出
- 支持多后端对接,可以同时串口输出和保存成文件
- 每个后端支持独立的过滤器,可以通过tag,func,level进行过滤
- 优化字符串格式化,尽量低的缓存和低的IO操作
- 可以自行配置 xf_log_config.h 减少仓库的占用
- 支持宏级别的等级屏蔽
- 自定义输出文件信息(文件名, 行号, 函数名)的 level
-
安装 xmake.
-
运行 linux 示例.
xmake b xf_log xmake r xf_log
-
将 xf_log 所需文件加入编译:
# 源文件路径列表 "src/*.c" # 头文件路径列表 "src" "src/utils"
-
请定义 xf_log_config.h 用于配置内容, 详情参考src/xf_log_config_internel.h
-
对接后端(一个或多个)
int log_uart_id = xf_log_register_obj(uart_write, NULL); // 对接串口打印 int log_file_id = xf_log_register_obj(file_write, "./log.log"); // 对接文件保存
-
对接时间戳(可选)
xf_log_set_time_func(get_current_time_ms);
-
调用API开始使用
XF_LOGU(TAG, "Hello, %s, date: %d, pi: %f!\n", name, date, pi); XF_LOGE(TAG, "Hello, %s, date: %d, pi: %f!\n", name, date, pi); XF_LOGW(TAG, "Hello, %s, date: %d, pi: %f!\n", name, date, pi); XF_LOGI(TAG, "Hello, %s, date: %d, pi: %f!\n", name, date, pi); XF_LOGD(TAG, "Hello, %s, date: %d, pi: %f!\n", name, date, pi); XF_LOGV(TAG, "Hello, %s, date: %d, pi: %f!\n", name, date, pi);