嵌入式log打印格式输出技巧
Log 信息格式
参考目前主流嵌入式、安卓等输出方式:
[日志级别] 文件名 : 日志信息
例:[info] main.c : init ok!
例:[debug] adc.c : adc_getvalue -> 3.3v
参考 Java 日志框架的输出方式:
[ 文件名] 日志级别 : 日志信息
例:[ main] info : init ok!
例: [ adc] debug : adc_getvalue -> 3.3v
条件编译
因为在进行单片机开发的过程中,需要大量的 Log 信息,但是在开发结束后,一直打印log会拖慢单片机的速度,所以在开发完成后需要关闭log。
在头文件中添加:
#define _DEBUG_ 1 //打印Log信息,不想打印时改为0即可
再把.c 文件中将所有的 printf
包裹上 #if _DEBUG_
与 #endif
#if _DEBUG_
printf("test");
#endif
可变参数宏
#ifdef _DEBUG_
#define user_printf(s,...) printf(s"\r\n",##__VA_ARGS__)
#define user_info(format,...) printf("[info] %s() %d "format"\r\n",__func__,__LINE__,##__VA_ARGS__)
#define user_error(format,...) printf("[error] %s %s()%d "format"\r\n",__FILE__,__func__,__LINE__,##__VA_ARGS__)
#else
#define user_printf(s,...)