Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions documentation/contribution_guide/coding_style_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.函数

Expand Down