zlog日志库的简单封装,以及给debug级别添加颜色显示
现看看效果如何:

方法如下:
定义相关颜色的宏
#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 "35;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"
封装 zlog函数
extern zlog_category_t * log_category;
extern int log_init();
extern void log_fini();
#define LOG_FATAL(fmt,args...) \
zlog(log_category, __FILE__, sizeof(__FILE__)-, \
__func__, sizeof(__func__)-, __LINE__, \
ZLOG_LEVEL_FATAL, ESC_START COLOR_FATAL fmt ESC_END, ##args) #define LOG_ERROR(fmt , args...) \
zlog(log_category, __FILE__, sizeof(__FILE__)-, \
__func__, sizeof(__func__)-, __LINE__, \
ZLOG_LEVEL_ERROR, ESC_START COLOR_ERROR fmt ESC_END, ##args) #define LOG_WARN(fmt, args...) \
zlog(log_category, __FILE__, sizeof(__FILE__)-, \
__func__, sizeof(__func__)-, __LINE__, \
ZLOG_LEVEL_WARN, ESC_START COLOR_WARN fmt ESC_END, ##args) #define LOG_NOTICE(fmt , args...) \
zlog(log_category, __FILE__, sizeof(__FILE__)-, \
__func__, sizeof(__func__)-, __LINE__, \
ZLOG_LEVEL_NOTICE, ESC_START COLOR_NOTICE fmt ESC_END, ##args) #define LOG_INFO(fmt,args...) \
zlog(log_category, __FILE__, sizeof(__FILE__)-, \
__func__, sizeof(__func__)-, __LINE__, \
ZLOG_LEVEL_INFO, ESC_START COLOR_INFO fmt ESC_END, ##args) #define LOG_DEBUG(fmt , args...) \
zlog(log_category, __FILE__, sizeof(__FILE__)-, \
__func__, sizeof(__func__)-, __LINE__, \
ZLOG_LEVEL_DEBUG, ESC_START COLOR_DEBUG fmt ESC_END, ##args)
封装 zlog_init,zlog_get_category,zlog_fini
zlog_category_t * log_category = NULL;
int log_init() {
//初始化.配置文件名是固定的log.conf
if (zlog_init("log.conf")) {
printf("Error: zlog_init\n");
zlog_fini();
return -;
}
//找到分类,在配置文件中的category
log_category = zlog_get_category("my_cat");
if (!log_category) {
printf("Error: get cat fail\n");
zlog_fini();
return -;
}
return ;
}
void log_fini() {
zlog_fini();
}
zlog日志库的简单封装,以及给debug级别添加颜色显示的更多相关文章
- Sword zlog日志库使用
配置文件*.conf 配置文件具体内容如下: [global] #改变量可以不写,默认是true,如果使用设置为true时,Zlog就会严格检查所用格式和规则,否则,忽略所用格式和规则. strict ...
- 自行实现的jar包中,日志库的适配实现
日常情况下,我们自己都会自行实现一些基础的jar包,如dao包.service包或一些其他完成特定功能的jar包.如果没有一套调试日志信息,出现问题时想查找问题非常不方便.可能大多数小伙伴都会有自 ...
- c++ 高性能日志库(muduo_AsyncLogging)
c++ 高性能日志库(muduo_AsyncLogging) 实现一个高效的网络日志库要解决那些问题? 首先明确一下问题的模型,这是一个典型的多生产者 单消费者问题,对于前端的日志库使用者来说,应该做 ...
- zlog 纯C日志函数库的简单使用方法
zlog简述: log是一个高性能.线程安全.灵活.概念清晰的纯C日志函数库. 事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx).C程序员都喜 ...
- GO的日志库log竟然这么简单!
前言 最近在尝试阅读字节开源RPC框架Kitex的源码,看到日志库klog部分,果不其然在Go原生的log库的基础上增加了自己的设计,大体包括增加了一些格式化的输出.增加一些常用的日志级别等. 一番了 ...
- Google图片加载库Glide的简单封装GlideUtils
Google图片加载库Glide的简单封装GlideUtils 因为项目里用的Glide的地方比较多,所有简单的封装了以下,其实也没什么,就是写了个工具类,但是还是要把基础说下 Glide的Githu ...
- easylog -- Linux 下的简单日志库
之前使用 log4c 或者 log4cpp 的时候, 总需要配置一些文件和链接库之类复杂的配置. 虽然越复杂越说明这个软件支持的功能多.可选择性强, 但是对于一个小的项目,或者要研究他人的代码而加点儿 ...
- Linux共享库 zlog日志
[ global] strict init = false buffer min = buffer max = 2MB rotate lock file= /tmp/zlog.lock [format ...
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...
随机推荐
- 深度探究apk安装过程
一.先验知识 0.PcakageaManagerService版本号变化 1.概述 2.PackageManagerService服务启动流程 3. PackageManagerService入口 二 ...
- 广告制胜无它,顺应人性尔——leo鉴书63
近期看了几本怎样写文案的书.对广告有了些兴趣.查了下相关销量排行,位置比較高的是本叫<科学的广告+我的广告生涯>的书,是同一作者(Claude C. Hopkins)两本书的合集.前者是他 ...
- MyEclipse 设置智能提示
choice 1: -->window→Preferences→Java→Editor→Content Assist, --->将Auto activation delay 的数值改为一个 ...
- 如何打造你的独特观点(一) ——形成“自己的想法”的基础课zz
信息过载的时代,能在各种KOL的声音中保持独立思考很不容易,能输出独特观点又进一层.不断练习我们独立思考的能力,有助于看清周围复杂的事物,也能让我们在日常生活中给人留下“有趣之人”的印象,提升人际交往 ...
- vmware workstation14永久激活密钥
vmware workstation14永久激活密钥分享: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3WK-AFXEK-488JP-A7MQX-XL8YF AC5XK-0ZD4 ...
- hdu5698 百度之星2016round2b第3题
这题首先是找规律推公式,然后就是组合数学的知识了. 题目是问到第n行第m列的格式有几种方案,我们可以用手算的方法列出当n和m比较小时的所有答案 比如我列出以下8*8的矩阵 矩阵上的数表示从那个位置到最 ...
- 为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...
- Sparksql 取代 Hive?
sparksql hive https://databricks.com/blog/2014/07/01/shark-spark-sql-hive-on-spark-and-the-future-o ...
- 电脑插入U盘后显示CD驱动器,如何还原为正常U盘?
以前用电脑店制作U盘启动工具,结果U盘的一小部分变成了CD驱动器, 无论怎么格式化都无法将U盘还原,这几天心血来潮,看了一些恢复U盘的教程, 打算写一篇博客讲解一下还原过程(本人亲测) 1.下载Chi ...
- android中getWidth()和getMeasuredWidth()
getMeasuredWidth()获取的是view原始的大小,也就是这个view在XML文件中配置或者是代码中设置的大小.getWidth()获取的是这个view最终显示的大小,这个大小有可能等于原 ...