博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zlog日志库的简单封装,以及给debug级别添加颜色显示
阅读量:6361 次
发布时间:2019-06-23

本文共 2417 字,大约阅读时间需要 8 分钟。

现看看效果如何:

 

方法如下:

 

 定义相关颜色的宏 

1 #define ESC_START       "\033[" 2 #define ESC_END         "\033[0m" 3 #define COLOR_FATAL     "31;40;5m" 4 #define COLOR_ALERT     "31;40;1m" 5 #define COLOR_CRIT      "31;40;1m" 6 #define COLOR_ERROR     "35;40;1m" 7 #define COLOR_WARN      "33;40;1m" 8 #define COLOR_NOTICE    "34;40;1m" 9 #define COLOR_INFO      "32;40;1m"10 #define COLOR_DEBUG     "36;40;1m"11 #define COLOR_TRACE     "37;40;1m"

 

 

封装 zlog函数

 

1 extern zlog_category_t * log_category; 2 extern int log_init(); 3 extern void log_fini(); 4 #define LOG_FATAL(fmt,args...)         \ 5     zlog(log_category, __FILE__, sizeof(__FILE__)-1, \ 6     __func__, sizeof(__func__)-1, __LINE__, \ 7     ZLOG_LEVEL_FATAL, ESC_START COLOR_FATAL fmt ESC_END, ##args) 8  9     10 #define LOG_ERROR(fmt , args...)    \11     zlog(log_category, __FILE__, sizeof(__FILE__)-1, \12     __func__, sizeof(__func__)-1, __LINE__, \13     ZLOG_LEVEL_ERROR, ESC_START COLOR_ERROR fmt ESC_END, ##args)14     15 #define LOG_WARN(fmt, args...)        \16     zlog(log_category, __FILE__, sizeof(__FILE__)-1, \17     __func__, sizeof(__func__)-1, __LINE__, \18     ZLOG_LEVEL_WARN, ESC_START COLOR_WARN fmt ESC_END, ##args)19     20 #define LOG_NOTICE(fmt , args...)    \21     zlog(log_category, __FILE__, sizeof(__FILE__)-1, \22     __func__, sizeof(__func__)-1, __LINE__, \23     ZLOG_LEVEL_NOTICE, ESC_START COLOR_NOTICE fmt ESC_END, ##args)24     25 #define LOG_INFO(fmt,args...)         \26     zlog(log_category, __FILE__, sizeof(__FILE__)-1, \27     __func__, sizeof(__func__)-1, __LINE__, \28     ZLOG_LEVEL_INFO, ESC_START COLOR_INFO fmt ESC_END, ##args)29     30 #define LOG_DEBUG(fmt , args...)    \31     zlog(log_category, __FILE__, sizeof(__FILE__)-1, \32     __func__, sizeof(__func__)-1, __LINE__, \33     ZLOG_LEVEL_DEBUG, ESC_START COLOR_DEBUG fmt ESC_END, ##args)

 

 

 

 封装 zlog_init,zlog_get_category,zlog_fini

 

1 zlog_category_t * log_category = NULL; 2  3 int log_init() { 4     //初始化.配置文件名是固定的log.conf 5     if (zlog_init("log.conf"))  { 6         printf("Error: zlog_init\n"); 7     zlog_fini(); 8         return -1; 9     }10     //找到分类,在配置文件中的category11     log_category = zlog_get_category("my_cat");12     if (!log_category) {13     printf("Error: get cat fail\n");14     zlog_fini();15     return -2;16     }17     return 0 ;18 }19 20 21 void log_fini() {22     zlog_fini();23 }

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/superPerfect/p/3621648.html

你可能感兴趣的文章
用shell实现rpm包的自动安装
查看>>
大型网站技术架构(四)网站的高性能架构
查看>>
BAT资深架构师告诉你从程序员到架构师,你需要掌握什么能力?
查看>>
电脑被格式化了如何恢复?
查看>>
母亲像一道明亮的光
查看>>
js判断数组中是否包含某元素
查看>>
关于tcp/ip三次握手的理解和详细分析
查看>>
office 2010 提示“不信任到visual basic project“问题处理
查看>>
高性能web开发之网络传输环节
查看>>
遍历Map的四种方法
查看>>
https、SSL与数字证书介绍
查看>>
【VMCloud云平台】SCVMM配置(二)创建一片云
查看>>
http://bbs.linuxtone.org/thread-15681-1-1.html
查看>>
TIBCO add user error solution
查看>>
ssh服务的安装与运行
查看>>
linux-centos7搭建本地yum服务并使用
查看>>
For input string: "null"
查看>>
『高级篇』docker之微服务业务分析(九)
查看>>
安装、登录CentOS7
查看>>
selenium处理嵌套iframe
查看>>