这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【EasyLogger】日志过滤功能

共1条 1/1 1 跳转至

【EasyLogger】日志过滤功能

高工
2026-02-28 17:31:49     打赏

【简介】

             对于EasyLogger 我么已经完成了从裸机环境到FreeRTOS的同步及异步方式的log输出管理。对于一个日志库日志过滤功能是个很实用的需求,EasyLogger 也是支持日志过滤功能的。EasyLogger  在每个条log输出时会带有Tag 信息,过滤的时候可以通过Tag 信息来过滤log,除了TAG 外每条log 还有对应输出level 也可以按照level 进行过滤。

image.png

【elog 开关验证】

除了上述的按照按照Tag 过滤log 的方式外,同样也可以通过总开关来“on/off”EasyLogger  的log 输出。

本地天下如下代码来控制elog 的on/off

        else if(argc == 2 && (0 == strcmp(argv[1],"test")))
    {
        /* 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!");
    }
    else if (!strcmp(argv[1], "on") || !strcmp(argv[1], "ON"))
    {
        elog_set_output_enabled(true);
    } else if 
    (!strcmp(argv[1], "off") || !strcmp(argv[1], "OFF")) {
         elog_set_output_enabled(false);
    }


上述代码 elog off  后测试代码的输出已经按照预期关闭,elog on  后测试代码打印log  又恢复输出

image.png

【elog TAG 过滤验证】

继续添加如下测试代码来验证elog 的Tag 过滤功能。

    else if (argc == 3 && (0 == strcmp(argv[1],"tag")) && strlen(argv[2]) <= ELOG_FILTER_TAG_MAX_LEN)
    {
        elog_set_filter_tag(argv[2]);
    }

  

我们使用上述测试代码来过滤tag 为test 的log 输入后,这时tag 为main 的log已经被过滤掉不显示。

image.png

重新配置过滤器的tag 为 main ,测试log又可以按照预期的显示了

image.png


【elog 关键字(kw)过滤验证】

添加如下的触发分支,根据输入的关键字进行log 过滤

    else if (argc == 3 && (0 == strcmp(argv[1],"kw")) && strlen(argv[2]) <= ELOG_FILTER_KW_MAX_LEN)
    {
        elog_set_filter_kw(argv[2]);
    }


我们过滤log中带有 tid 关键字的log,测试log中只有带有"tid"的log 进行了输出,其他的都被屏蔽了。

image.png

【elog log等级过滤验证】

添加如下的触发分支,根据log等级进行log 过滤

    else if (argc == 3 && (0 == strcmp(argv[1],"level")))
    {
        elog_set_filter_lvl(atoi(argv[2]));
    }


log 的等级定义如下

image.png

过滤配置了log过滤等级后只有优先级高于log 过滤等级的log 才会输出。

image.png



           


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]