在C语言编写代码和调试阶段,需要添加很多打印信息;
为了方便管理打印信息,可以使用不同打印级别打印不同信息的方式进行开发
在开发阶段,使用dbg级别,打印大多数信息;当开发完成准备发布时,使用err级别,屏蔽掉无用的调试信息
//打印等级
#define LOG_ERR (1)
#define LOG_WRN (2)g, maybe OK
#define LOG_INF (3)on
#define LOG_DBG (4)
static int log_lvl = LOG_DBG;//设置为调试级别
#define LOG(lvl, ...) \
do { \
if(lvl <= log_lvl) { \
switch(lvl) { \
case LOG_ERR: \
fprintf(stderr, "\"%s\" line %d [err]: ", __FILE__, __LINE__); \
break; \
case LOG_WRN: \
fprintf(stderr, "\"%s\" line %d [wrn]: ", __FILE__, __LINE__); \
break; \
case LOG_INF: \
fprintf(stderr, "\"%s\" line %d [inf]: ", __FILE__, __LINE__); \
break; \
case LOG_DBG: \
fprintf(stderr, "\"%s\" line %d [dbg]: ", __FILE__, __LINE__); \
break; \
default: \
fprintf(stderr, "\"%s\" line %d [???]: ", __FILE__, __LINE__); \
break; \
} \
fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, "\n"); \
} \
} while(0)