一、easylogger 是什么?
easylogger是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。
最主要的特点有以下:
1、支持标签;可以给每个模块分配一个标签,那么每个模块的LOG标签就会不一样;
2、支持LOG等级,比如,error,debug,warn,info等,这个可以只打印错误信息或者调试信息;
3、支持LOG过滤,比如可以按标签过滤,只打印某一个模块的功能,也可以按等级过滤,只打印ERROR信息,而且还可以按过滤关键字。
二、移植EASYLOGGER
1、下载代码
下载链接如下:
EasyLogger: 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库 (gitee.com)
点击链接,点击克隆/下载,在如下界面点击下载ZIP或者使用git下载。
2、新建文件
在上一次LED工程目录下,新建EASYLOGGER,如图所示,复制如图相关文件。
3、在KEIL中添加.c和.h文件
4、修改easylogger相关接口
1)修改打印函数
void elog_port_output(const char *log, size_t size) {
/* add your code here */
char buf[ELOG_LINE_BUF_SIZE];
memcpy(buf,log,size);
UsartSendStrings((uint8_t *)buf,size);
//printf("%.*s", size, log);
}
2)配置相关参数
3)编写easylogger相关配置函数
void elog_config(void) {
//初始化elog 初始化的 EasyLogger 的核心功能,初始化后才可以使用下面的API
elog_init();
//日志颜色功能是将各个级别日志按照颜色进行区分,默认颜色功能是关闭
//true: 使能,false: 失能
elog_set_text_color_enabled(false);
/* 设置每个级别的日志输出格*/
elog_set_fmt(ELOG_LVL_ASSERT, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_ERROR, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_WARN, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_INFO, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_DEBUG, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_TIME);
elog_set_filter_lvl(ELOG_LVL_ERROR);//设置输出等级为错误
//启动elog 在初始化完成后,必须调用启动方法,日志才会被输出
elog_start();
}
4)测试LOG代码
void test_elog(void) {
/* test log output for all level */
log_a("Hello EasyLogger!");
log_e("Hello EasyLogger!");
log_w("Hello EasyLogger!");
log_i("Hello EasyLogger!");
log_d("Hello EasyLogger!");
log_v("Hello EasyLogger!");
// elog_raw("Hello EasyLogger!");
}
三、下载验证
输出LOG如图。
好了,这篇测评就到这了。
|