STM32配置OneOS日志系统

DLOG-日志系统

什么是日志?

记录发生的某个事件并进行显示或保存到文件中,这就是日志。

OneOS的日志系统叫做DLOG(day log)日志系统。

日志有什么用?

日志有助于程序调试,方便追随问题。

日志可用于系统监控和性能调试,有助于系统维护和管理。

日志标签

标签(tag)用于日志分类,给每条log“附上”标签的属性,方便模块化管理。

标签的名称可以自定义。

日志级别

dlog 前端

(1) dlog 前端兼容 linux syslog 接口(需包含 syslog.h 头文件),接口形式如下: void syslog(int priority, const char *format, ...) 注:若想兼容 linux syslog 接口,需要同时打开 dlog 的编译宏 OS_USING_DLOG 和 syslog 的编译宏 DLOG_USING_SYSLOG,否则不支持。

(2)除了兼容 linux syslog 接口,dlog 前端使用 LOG_X 接口形式实现前端输出。

dlog 核心

(1) 前过滤器包括标签过滤、全局过滤和全局标签过滤,当标签级别过滤器中存在本条日志的标签时,则按照此标签对应的输出级别进行日志输出控制;若不存在,则按照全局的输出级别进行输出控制,标签级别过滤优先于全局级别过滤。当日志级别过滤完成后,进行全局标签过滤,即:若设置了全局过滤标签,则只打印包含此标签的日志。

(2) 格式化模块可以控制哪些日志信息是否输出,可以控制是否支持浮点数打印、是否支持颜色输出、是否支持时间输出以及何种类型的时间、是否输出日志级别信息、是否输出标签信息、是否输出任务线程的名称。

(3) 后过滤器包含全局关键字过滤,即:若设置了全局过滤关键字,则只打印包含此关键字的日志。

(4)dlog 支持异步输出和同步输出。在异步输出模式下,会把日志先存到缓冲区中,待系统空闲时,调用专门的任务线程输出日志到后端;在同步输出模式下,不切换任务(或中断)上下文,直接把日志输出到后端。另外,不管在异步输出模式还是在同步输出模式,都支持在中断上下文打印(需要使能 DLOG_USING_ISR_LOG 编译开关)。

dlog 后端

dlog 可以同时支持形式多样的日志后端,如串口、文件、网络。dlog 提供了统一接口对日志后端进行管理。

目前,dlog 组件已经支持日志后端的文件系统记录功能,以文件的形式将日志信息记录在文件系统中,需要使能 DLOG_BACKEND_USING_FILESYSTEM 编译开关,添加 dlog 日志后端文件系统记录日志功能。用户也可以通过 dlog_backend_register 函数注册自己的后端。

DLOG特点介绍

 Dlog API函数

实践步骤

复制之前完成的LED工程改名为DLOG

进入.\OneOS-OneOS_For_OneNET\projects\STM32F407VE_DLOG文件夹打开OneOS_Cube

输入oos config

配置Dlog

S 保存    Q退出

输入oos init -i keil生成代码

打开project.uvprojx,右键application文件夹添加dlog.demo.c文件

#include <oneos_config.h>

#include <os_util.h>

#include <dlog.h>

#include <shell.h>

#define TAG_A               "TAG_A"

#define TAG_B               "TAG_B"

void sh_dlog_test(int32_t argc, char **argv)

{

    LOG_E(TAG_A, "TAG_A DLOG_ERROR");

    LOG_W(TAG_A, "TAG_A DLOG_WARNING");

    LOG_I(TAG_A, "TAG_A DLOG_INFO");

    LOG_D(TAG_A, "TAG_A DLOG_DEBUG");

    LOG_E(TAG_B, "TAG_B DLOG_ERROR");

    LOG_W(TAG_B, "TAG_B DLOG_WARNING");

    LOG_I(TAG_B, "TAG_B DLOG_INFO");

    LOG_D(TAG_B, "TAG_B DLOG_DEBUG");

}

SH_CMD_EXPORT(dlog_test, sh_dlog_test, "test dlog tag level");

编译、下载至开发板中,打开MobaXterm

中国移动云盘:链接:https://caiyun.139.com/m/i?2ci6YD1Y5Ne2o提取码:tact

此时按下开发板复位按键,即会显示OneOS初始化信息。

输入shell命令如help,即可查看当前系统支持的所有命令。

双击选中dlog_test

按下鼠标中键或右键选择粘贴,然后回车Enter。

此处的dlog_test对应dlog_demo.c中SH_CMD_EXPORT(dlog_test, sh_dlog_test, "test dlog tag level");

具体相关原理请参考文档中心 (10086.cn)Shell控制台组件。

在主程序中使用Dlog

下载编译至开发板中

  • 40
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值