在编码过程中,我们通常需要打印日志来跟踪程序运行轨迹。
这里定义了几个日志宏,包括以下功能:
1.日志开关(关闭开关,日志将不在打印)
2.日志级别,定义不同的宏,打印不同级别日志
3.精确打印时间、文件、函数、行,变量值等。
#include <stdio.h>
#define LOG_TURN_ON
#ifdef LOG_TURN_ON
#define log_info(...) do {\
LOG_isEnabled()&&\
printf("<%s %s> %s %s:%d INFO:",__DATE__, __TIME__,__FUNCTION__,__FILE__,__LINE__)&&\
printf(__VA_ARGS__)&&\
printf("\n");\
}while(0)
//__DATE__, __TIME__,__FUNCTION__,__FILE__,__LINE__ 日期宏,时间宏,函数宏,文件宏,行宏
//__VA_ARGS__ 动态参数宏
#define log_warn(...) do {\
LOG_isEnabled()&&\
printf("<%s %s> %s %s:%d WARN:",__DATE__, __TIME__,__FUNCTION__,__FILE__,__LINE__)&&\
printf(__VA_ARGS__)&&\
printf("\n");\
}while(0)
#define log_error(...) do {\
LOG_isEnabled()&&\
printf("<%s %s> %s %s:%d ERROR:",__DATE__, __TIM