项目-SERVER模块-日志宏

日志宏


#define INF 0
#define DBG 1
#define ERR 2

#define LOG_LEVEL INF
#define LOG(level, format, ...)   do {\
        if (level < LOG_LEVEL) break;\
        time_t t = time(NULL);\
        struct tm *ltm = localtime(&t);\
        char tmp[32] = {0};\
        strftime(tmp, 31, "%H:%M:%S", ltm);\
        printf("[%s][%s:%d] " format "\n", tmp, __FILE__, __LINE__, ##__VA_ARGS__);\
    } while(0)

#define INF_LOG(format, ...) LOG(INF, format, ##__VA_ARGS__);
#define DBG_LOG(format, ...) LOG(DBG, format, ##__VA_ARGS__);
#define ERR_LOG(format, ...) LOG(ERR, format, ##__VA_ARGS__);

这段代码定义了一些宏和宏的组合,用于实现日志输出功能。

  1. INF, DBG, ERR: 分别定义了三个日志级别,分别为信息、调试和错误。

  2. LOG_LEVEL INF: 定义了一个日志级别,可以通过修改LOG_LEVEL的值来控制输出哪种级别及以上的日志。

  3. LOG(level, format, ...): 这是一个宏,用于输出日志。根据传入的level值和LOG_LEVEL比较来确定是否输出日志,然后使用printf函数输出带有时间、文件名和行号等信息的格式化字符串。

  4. INF_LOG(format, ...), DBG_LOG(format, ...), ERR_LOG(format, ...): 这三个宏实际上是对LOG宏的封装,分别用于输出信息、调试和错误级别的日志。调用这些宏会将对应的日志级别传递给LOG宏进行处理。

总的来说,这些宏的作用是在不同级别下输出带有时间、文件名和行号信息的日志,方便程序员进行调试和错误定位。根据设置的LOG_LEVEL值,可以灵活控制输出的日志级别,使得日志输出更加可控和灵活。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值