现看看效果如何:
方法如下:
定义相关颜色的宏
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 //找到分类,在配置文件中的category 11 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 }