RTT笔记-ulog

2019-04-15  本文已影响0人  lissettecarlr

该笔记类别主要是在自己学习时做的一些记录,方便自己很久不用忘掉时进行快速回忆

1 导入组件

代码位置:rt-thread-master\components\utilities\ulog

文件名 说明
ulog.c 日志主文件
console_be.c 日志打印接口实现
syslog.c 系统日志,不使用就没必要导入

根据使用需要的功能在rtconfig.h中添加宏定义,例如下列

/* Utilities */

#define RT_USING_ULOG
#define ULOG_OUTPUT_LVL_D
#define ULOG_OUTPUT_LVL 7
#define ULOG_ASSERT_ENABLE
#define ULOG_LINE_BUF_SIZE 128

/* log format */
#define ULOG_USING_FILTER
#define ULOG_USING_COLOR
#define ULOG_OUTPUT_TIME
#define ULOG_OUTPUT_LEVEL
#define ULOG_OUTPUT_TAG
#define ULOG_BACKEND_USING_CONSOLE
#define ULOG_SW_VERSION_NUM 0x00101

2 输出日志

代码 说明
LOG_E(...) 错误级别
LOG_W(...) 警告级别
LOG_I(...) 提示级别
LOG_D(...) 调试级别
LOG_RAW(...) 无级别,均输出
ulog_hexdump(n,size,buf,len) 输入16进制
int main()
{
     
     rt_thread_mdelay(1000);
     uint8_t data[3] ={1,2,3};
     LOG_E("error");
     LOG_W("waring");
     LOG_I("info"); 
     LOG_D("debug");
     LOG_RAW("unformatted\n");
     ulog_hexdump("main", 8, data, sizeof(data)); //m
    return 0;
}

输出结果

[1001] E/main: error
[1003] W/main: waring
[1005] I/main: info
[1007] D/main: debug
unformatted
D/HEX main: 0000-0008: 01 02 03      

3 日志过滤

3.1按模块级别过滤

tag: 设备标签
level:等级

级别 名称
LOG_LVL_ASSERT 断言
LOG_LVL_ERROR 错误
LOG_LVL_WARNING 警告
LOG_LVL_INFO 信息
LOG_LVL_DBG 调试
LOG_FILTER_LVL_SILENT 停止输出
LOG_FILTER_LVL_ALL 全部
将会屏蔽掉设定等级一下的输出
int ulog_tag_lvl_filter_set(const char *tag, rt_uint32_t level)

举例:

int main()
{
     ulog_tag_lvl_filter_set("main",LOG_LVL_WARNING);
     rt_thread_mdelay(1000);
     uint8_t data[3] ={1,2,3};
     LOG_E("error");
     LOG_W("waring");
     LOG_I("info"); 
     LOG_D("debug");
     LOG_RAW("unformatted\n");
     ulog_hexdump("main", 8, data, sizeof(data)); //m
    return 0;
}

输出结果

[1001] E/main: error
[1003] W/main: waring
unformatted

3.2 按标签全局过滤

tag: 允许输出的标签关键字
该过滤方式可以对所有日志执行按标签过滤,只有包含标签信息的日志才允许输出,当tag为空时则取消过滤

void ulog_global_filter_tag_set(const char *tag)

3.3 按级别全局过滤

level:等级

级别 名称 key
LOG_LVL_ASSERT 断言 0
LOG_LVL_ERROR 错误 3
LOG_LVL_WARNING 警告 4
LOG_LVL_INFO 信息 6
LOG_LVL_DBG 调试 7
LOG_FILTER_LVL_SILENT 停止输出 1
LOG_FILTER_LVL_ALL 全部 255
void ulog_global_filter_lvl_set(rt_uint32_t level)

3.4 按关键词全局过滤

keyword: 为空则取消过滤

void ulog_global_filter_kw_set(const char *keyword);
上一篇 下一篇

猜你喜欢

热点阅读