分享自己写的一个简化版LOG输出宏

本文介绍了一种通过宏定义实现的简易日志输出方法。该方法可根据全局变量verbose的值来控制不同级别的日志信息输出,包括调试(DBG)、信息(INFO)、警告(WRN)、错误(ERR)和输出(OUT)等。只需将代码添加到.h文件中即可使用,适用于快速原型开发或小型项目。
extern int verbose;

#define DBG(...) XLOG(4, "DBG", __VA_ARGS__)
#define INFO(...) XLOG(3, "INF", __VA_ARGS__)
#define WRN(...) XLOG(2, "WRN", __VA_ARGS__)
#define ERR(...) XLOG(1, "ERR", __VA_ARGS__)
#define OUT(...) XLOG(0, "OUT", __VA_ARGS__)
#define XLOG(level, LOG_LEVEL, ...) \
do{\
    if(verbose >= (level)) {\
        time_t _tm = 0;\
        struct tm log_tm = {0};\
        time(&_tm);\
        localtime_r(&_tm, &log_tm);\
        fprintf(stdout, "%4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d %3s | ", log_tm.tm_year+1900, log_tm.tm_mon+1, log_tm.tm_mday, log_tm.tm_hour, log_tm.tm_min, log_tm.tm_sec, LOG_LEVEL);\
        fprintf(stdout, __VA_ARGS__);}\
    }\
}while(0)

verbose是全局变量,用来限制输出等级,小于此等级的信息会被输出,例如,如果verbose = 4,则全部信息都会输出,如果verbose = 3,则DBG信息不会输出。

 

使用方法同printf,只是把printf替换为DBG、INFO等。

DBG("abcdefg%d.\n", a);

 

这是一个非常简化版的,并且只能输出到屏幕,只需要将其加到.h文件就可以使用。

另一个版本需要.c和.h,使用也更复杂:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值