打印
[MM32软件]

【灵动微电子MM32F5330测评】03 移植easylogger

[复制链接]
947|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、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如图。

好了,这篇测评就到这了。









使用特权

评论回复
沙发
gouguoccc| | 2024-8-3 09:14 | 只看该作者
不错,嵌入式也可以用日子系统了

使用特权

评论回复
板凳
gouguoccc| | 2024-8-3 09:14 | 只看该作者
楼主知道还有哪些用于单片机的C日志系统吗?

使用特权

评论回复
地板
怀揣少年梦|  楼主 | 2024-8-3 09:35 | 只看该作者
gouguoccc 发表于 2024-8-3 09:14
不错,嵌入式也可以用日子系统了

是的,还是很方便的

使用特权

评论回复
5
怀揣少年梦|  楼主 | 2024-8-3 09:38 | 只看该作者
gouguoccc 发表于 2024-8-3 09:14
楼主知道还有哪些用于单片机的C日志系统吗?

单片机日志系统倒是有挺多的,比如mslog,log4c、zlog等

使用特权

评论回复
6
WoodData| | 2024-8-3 14:58 | 只看该作者
效果不错

使用特权

评论回复
7
怀揣少年梦|  楼主 | 2024-8-3 15:47 | 只看该作者

目前用的还是挺顺手的,上手也快

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:一切皆有可能

28

主题

397

帖子

2

粉丝