关于使用C语言封装日志等级打印函数的记录

今天在写代码的时候,使用printf打印log信息,发现到处都是printf的输出,不方便查看log信息,想到以前项目中根据log等级来区分的方法,并打印代码所在行,函数,文件名。从网上又查找了其他的宏定义颜色的资料,将颜色用来区分log等级,在此记录下。

代码如下:

#define ESC_START     "\033["
#define ESC_END       "\033[0m"
#define COLOR_FATAL   "31;40;5m"
#define COLOR_ALERT   "31;40;1m"
#define COLOR_CRIT    "31;40;1m"
#define COLOR_ERROR   "31;40;1m"
#define COLOR_WARN    "33;40;1m"
#define COLOR_NOTICE  "34;40;1m"
#define COLOR_INFO    "32;40;1m"
#define COLOR_DEBUG   "36;40;1m"
#define COLOR_TRACE   "37;40;1m"

#define TRACE_INFO(format, args...) (printf( ESC_START COLOR_INFO "[INFO]-[%s]-[%s]-[%d]: \n" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args)) 
#define TRACE_DEBUG(format, args...) (printf( ESC_START COLOR_DEBUG "[DEBUG]-[%s]-[%s]-[%d]:\n" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args)) 
#define TRACE_WARN(format, args...) (printf( ESC_START COLOR_WARN "[WARN]-[%s]-[%s]-[%d]:\n" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args))
#define TRACE_ERROR(format, args...) (printf( ESC_START COLOR_ERROR "[ERROR]-[%s]-[%s]-[%d]:\n" format ESC_END, __FILE__, __FUNCTION__ , __LINE__, ##args))
使用举例:

    TRACE_INFO();
    TRACE_WARN("%d\n",10);
    TRACE_ERROR("%s\n","error");
    TRACE_DEBUG("Debug\n");

测试结果:

遗留问题:打印文件名的时候使用__FILE__,会将文件目录一起打印出来,目前还没找到方法只打印文件名,不打印文件目录。

遗留问题已经解决,参看:https://blog.csdn.net/cozhzh/article/details/88398830

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值