美文网首页
RTT笔记-ulog

RTT笔记-ulog

作者: lissettecarlr | 来源:发表于2019-04-15 11:11 被阅读0次

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

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);

相关文章

  • RTT笔记-ulog

    该笔记类别主要是在自己学习时做的一些记录,方便自己很久不用忘掉时进行快速回忆 1 导入组件 代码位置:rt-thr...

  • flutter 优秀日志库 ulog

    ulog ulog的想法和代码风格,设计方式与 Android logger库几乎无差别,差别在于ulog第一个版...

  • 工欲善其事,必先利其器:通过Telnet访问SEGGER RTT

    Segger提供了RTT Viewer、RTT Client和RTT Logger3个工具用于RTT的访问,下面列...

  • RTT笔记-shell

    RTT笔记-shell 模式切换 finsh同时支持c-c-style模式和msh模式,默认进入msh模式,在该模...

  • RTT笔记-线程

    继续按照程序流程前进,前面提到的时钟初始化,堆初始化都还未跳出板级初始化rt_hw_board_init函数 然后...

  • RTT笔记-SPI

    该笔记类别主要是在自己学习时做的一些记录,方便自己很久不用忘掉时进行快速回忆 1 简述 和串口不同,SPI属于总线...

  • RTT笔记-package

    该笔记类别主要是在自己学习时做的一些记录,方便自己很久不用忘掉时进行快速回忆 1 简述 被封装用于特定功能的代码,...

  • RTT笔记-进程

    修改!该文变更为快速查阅编程文档,RTT进程实现分析将另起一文 动态创建线程 静态创建线程 事件 消息队列 定义 ...

  • RTT笔记-AT组件

    1 导入系统 AT 组件中 AT Client 功能占用资源体积为 4.6K ROM 和 2.0K RAM; AT...

  • RTT笔记-fal

    该笔记类别主要是在自己学习时做的一些记录,方便自己很久不用忘掉时进行快速回忆 1 使用 1.1 导入文件 文件名位...

网友评论

      本文标题:RTT笔记-ulog

      本文链接:https://www.haomeiwen.com/subject/wvsmdqtx.html