From d9b0b3ef114089dae7557c904996e2ab1fcc5cb5 Mon Sep 17 00:00:00 2001 From: "Man, Jianting (Meco)" <920369182@qq.com> Date: Sun, 22 May 2022 13:41:59 -0400 Subject: [PATCH] =?UTF-8?q?[=E6=96=87=E6=A1=A3]=20=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E8=B4=A1=E7=8C=AE=E4=BB=A3=E7=A0=81=E6=8C=87=E5=8D=97=E5=AF=B9?= =?UTF-8?q?=E4=BA=8E=E6=97=A5=E5=BF=97=E4=BD=BF=E7=94=A8=E7=9A=84=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=20(#5975)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contribution_guide/coding_style_cn.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/documentation/contribution_guide/coding_style_cn.md b/documentation/contribution_guide/coding_style_cn.md index 96a4cf8383..d752611a53 100644 --- a/documentation/contribution_guide/coding_style_cn.md +++ b/documentation/contribution_guide/coding_style_cn.md @@ -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 -日志输出应该被设计成正常情况下是关闭状态(例如通过一个变量或宏就能够开启),并且当真正输出日志时,日志是易懂易定位问题的方式。"天书式"的日志系统是糟糕的,不合理的。 +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.函数