[文档] 修正贡献代码指南对于日志使用的描述 (#5975)

This commit is contained in:
Man, Jianting (Meco) 2022-05-22 13:41:59 -04:00 committed by GitHub
parent 1506829b85
commit d9b0b3ef11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 4 deletions

View File

@ -236,13 +236,23 @@ case 语句与前面的 switch 语句对齐,后续的语句则采用缩进的
这样括号内两侧的空格是不允许的。
## 11.trace、log信息
## 11.日志信息
在 RT-Thread 中,普遍使用的 log 方式是 rt_kprintf。rt_kprintf 在 RT-Thread 被实现成一个采用轮询、非中断方式的字串输出,能够适合于在中断这类"即时"显示日志的场合。因为这种轮询方式的存在,也必然会影响到日志输出的时序关系。
代码中多使用ulog的方式来输出日志例如
建议在代码中不要频繁的使用 rt_kprintf 作为日志输出,除非你真正的明白,你的代码运行占用的时间多一些也没什么关系。
```
#define DBG_TAG "Driver"
#define DBG_LVL DBG_INFO
#include <rtdbg.h>
日志输出应该被设计成正常情况下是关闭状态(例如通过一个变量或宏就能够开启),并且当真正输出日志时,日志是易懂易定位问题的方式。"天书式"的日志系统是糟糕的,不合理的。
LOG_D("this is a debug log.");
```
- 在 RT-Thread 中,普遍使用的日志输出方式是通过`LOG_D` 、`LOG_I` 、`LOG_W` 、`LOG_E`的方式来输出日志同时它也可以通过DBG_TAG来区分日志类别DBG_LVL控制日志输出的等级。
- 日志应该是以输出易懂易定位问题的方式。"天书式"的日志系统是糟糕的,不合理的,不应该出现在代码中。
- 禁止在头文件中重定义DBG_TAG防止其他模块包含时DBG_TAG出现不可控。
- 严禁在timer或者中断打印大量日志尽可能的避免或轻量化。
- 不建议使用rt_kprintf来作为日志输出方式rt_kprintf一般作为终端命令行交互使用。
## 12.函数