__VA_ARGS__)#define LOG_I(...) ulog_i(LOG_TAG, __VA_ARGS__)#define LOG_D(...) ulog_d(LOG_TAG, __VA_ARGS__)#define LOG_RAW(...) ulog_raw(__VA_ARGS__)#define LOG_HEX(name, width, buf, size) ulog_hex(name, width, buf, size) ...
RT-Thread ulog 是一个专为 RT-Thread 操作系统设计的超轻量级日志组件。其名称中的 "u" 代表微型(μ),强调其小巧的体积和高效的资源利用。ulog 日志组件旨在提供一个简洁、易用且功能全面的日志系统,帮助开发者在软件调试、维护、性能分析、系统监控和故障预警等方面提供强有力的支持。 2. 描述rtthread ulog日...
rtdbg 是 RT-Thread 早期的日志头文件,当前 rtdbg 已完成无缝对接ulog ,开启 ulog 后,旧项目中使用 rtdbg 的代码无需做任何修改,即可使用 ulog 完成日志输出。 elog 是 EasyLogger 的简称,对于 elog 来说,ulog 能完全做到 API 层面的兼容。使用时,只需要将旧项目源代码中的#include <elog.h>更换为#include...
通过上面的代码可以看出控制台后端的实现非常简单,这里实现了后端设备的output函数,并将该后端注册到 ulog 里,之后 ulog 的日志都会输出到控制台上。 如果要实现一个比较复杂的后端设备,此时就需要了解后端设备结构体,具体如下: 1structulog_backend 2{ 3charname[RT_NAME_MAX]; 4rt_bool_tsupport_color; 5void...
这个功能,是接触过的一个项目里实现的,通过修改ulog组件,增加log_id的属性,通过适配file_be,实现log信息写到文件的功能。 通过定义log文件大小、文件个数等属性,实现log文件的管理,如循环写入,而不是一直写一个文件(频繁的日志,时间久了,文件超大!)。
ulog 的代码目前开源在 RT-Thread 的 GitHub 仓库中,代码位于rt-thread/components/utilities/ulog下,大致使用流程如下: 开启:通过 ENV 工具,在 menuconfig 中的 utilities 菜单下选中 ulog 组件; 使用:可以参考 ulog 的应用笔记,ulog 的主要日志 API 非常简单,基本用法如下: ...
ulog 的代码目前开源在 RT-Thread 的 GitHub 仓库中,代码位于 rt-thread/components/utilities/ulog 下,大致使用流程如下: 开启:通过 ENV 工具,在 menuconfig 中的 utilities 菜单下选中 ulog 组件; 使用:可以参考 ulog 的应用笔记,ulog 的主要日志 API 非常简单,基本用法如下: ...
本应用笔记在《RT-Thread ulog 日志组件应用笔记 - 基础篇》(点击标题即可查看ulog应用笔记基础篇)的基础之上,讲解 RT-Thread ulog 组件的高级用法和使用技巧。帮助开发者更加深入的了解 ulog ,并提升日志调试效率。 1 本文的目的和结构 本文的目的和背景 ...
2. 开启 ulog 后,也有可能出现在任务调度器启动之先使用锁的现象。 3. 还有线程安全版 `rt_kprintf` ,这个也是考虑只在线程上下文使用,如果开启了它,任务调度器启动前的 `rt_kprintf` 需求被忽略了。 `rt_components_board_init` `rt_components_init` 两个函数可能有很多隐含操作。但是因为 `rt_components_...
ulog支持打印调用所在的函数以及文件和行数. 如果一起都打印出来会导致日志内容过场,可以分别定义三个宏,用户可以自由决定开启打印 函数 文件名 行数 mysterywolfadded thegood first issueGood for newcomers 新手任务labelJun 26, 2023 Contributor polarvidcommentedJul 23, 2023• ...