本帖最后由 怂包BB 于 2018-2-8 09:35 编辑
打印log的开源代码还是easylogger功能强大,在使用过程中有些功能用不到,因此做了个精简的,功能简单但是人性化的打印输出的开源代码b_log。
代码极其简单,大神勿喷!
主要的目的如下:
1、支持分级别打印,info, warning, error, assert
2、支持每个C文件里面的打印单独控制是否输出
3、支持限定当前允许的打印级别
4、支持每个级别单独配置额外参数
主要接口如下:
- #define log_i(...) /**< information log */
- #define log_w(...) /**< warning log */
- #define log_e(...) /**< error log */
- #define log_a(cond, ...) /**< assert log */
复制代码
主要功能:
(所有配置在b_log_config.h)
使用流程:
1、打印等级配置
- #define B_LOG_LEVEL_CFG B_LOG_LEVEL_I
复制代码
2、每个C文件可以单独配置是否打印
- 1、设置 B_LOG_CTRL_TOGETHER 0
- #define B_LOG_CTRL_TOGETHER 0
- 2、在每个C文件,include "b_log.h"上面如果加了 #define B_LOG_ENABLE 那么这个C文件里的打印有效反之无效
复制代码
3、V0.0.1不支持缓存。
4、在b_log_port.c里完成一个字符串打印输出即可使用
5、配置每个级别打印的额外参数:
- #define B_LOG_I_LEVEL_PARAM (B_LOG_PARAM_NULL)
- #define B_LOG_W_LEVEL_PARAM (B_LOG_PARAM_FUNC | B_LOG_PARAM_LINE)
- #define B_LOG_E_LEVEL_PARAM (B_LOG_PARAM_FILE | B_LOG_PARAM_FUNC | B_LOG_PARAM_LINE)
- #define B_LOG_A_LEVEL_PARAM (B_LOG_PARAM_FILE | B_LOG_PARAM_FUNC | B_LOG_PARAM_LINE)
复制代码
可选择性打印函数名、文件名、行号
目前在nordic的板子上测试了一下:
- log_i("helloworld %s
", "information");
- log_w("helloworld %s
", "warning");
- log_e("helloworld %s
", "error");
- log_a(0, "helloworld %s
", "assert");
复制代码
QQ截图20180208091738.png (8.63 KB, 下载次数: 0)
下载附件
2018-2-8 09:27 上传
https://github.com/notrynohigh/b_log
b_log-master.rar
(6.54 KB, 下载次数: 47)
2018-2-8 09:32 上传
点击文件名下载附件
一周热门 更多>