/* DEBUG level */
#define DBG_ERROR 0
#define DBG_WARNING 1
#define DBG_INFO 2
#define DBG_LOG 3
头部的定义:
#define DBG_ENABLE
#define DBG_SECTION_NAME "onenet.sample"
#define DBG_LEVEL DBG_LOG
#define DBG_COLOR
首先看1号4号马上就是转化;
/* the debug log will force enable when RT_DEBUG macro is defined */
#if defined(RT_DEBUG) && !defined(DBG_ENABLE)
#define DBG_ENABLE
#endif
/* it will force output color log when RT_DEBUG_COLOR macro is defined */
#if defined(RT_DEBUG_COLOR) && !defined(DBG_COLOR)
#define DBG_COLOR
#endif
也就是支持打印-支持颜色
看颜色的
#ifdef DBG_COLOR
#define _DBG_COLOR(n) rt_kprintf("\033["#n"m") //-----出口1
#define _DBG_LOG_HDR(lvl_name, color_n) \
rt_kprintf("\033["#color_n"m["lvl_name"/"DBG_SECTION_NAME"] ") //----出口2
#define _DBG_LOG_X_END \
rt_kprintf("\033[0m\n")
#else
#define _DBG_COLOR(n)
#define _DBG_LOG_HDR(lvl_name, color_n) \
rt_kprintf("["lvl_name"/"DBG_SECTION_NAME"] ")
#define _DBG_LOG_X_END \
rt_kprintf("\n")
#endif /* DBG_COLOR */
上面只有2个出口 看下面 你就明白了吧!打印颜色 在那个模块
#define dbg_log(level, fmt, ...) \
if ((level) <= DBG_LEVEL) \
{ \
switch(level) \
{ \
case DBG_ERROR: _DBG_LOG_HDR("E", 31); break; \
case DBG_WARNING: _DBG_LOG_HDR("W", 33); break; \
case DBG_INFO: _DBG_LOG_HDR("I", 32); break; \
case DBG_LOG: _DBG_LOG_HDR("D", 0); break; \
default: break; \
} \
rt_kprintf(fmt, ##__VA_ARGS__); \
_DBG_COLOR(0); \
}
随便看一个代码:LOG_I("Scoket created successfully, socket_id:%d\n", socket_id);
#define LOG_I(fmt, ...) dbg_log_line("I", 32, fmt, ##__VA_ARGS__)
#define dbg_log_line(lvl, color_n, fmt, ...) \
do \
{ \
_DBG_LOG_HDR(lvl, color_n); \
rt_kprintf(fmt, ##__VA_ARGS__); \
_DBG_LOG_X_END; \
} \
while (0)
也就是你可以用2种方式去debug
LOG_I("Scoket created successfully, socket_id:%d\n", socket_id);
或者dbg_log(DBG_ERROR, "Scoket created successfully, socket_id:%d\n", socket_id)