现看看效果如何:

方法如下:

定义相关颜色的宏

 #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级别添加颜色显示的更多相关文章

  1. Sword zlog日志库使用

    配置文件*.conf 配置文件具体内容如下: [global] #改变量可以不写,默认是true,如果使用设置为true时,Zlog就会严格检查所用格式和规则,否则,忽略所用格式和规则. strict ...

  2. 自行实现的jar包中,日志库的适配实现

    ​ 日常情况下,我们自己都会自行实现一些基础的jar包,如dao包.service包或一些其他完成特定功能的jar包.如果没有一套调试日志信息,出现问题时想查找问题非常不方便.可能大多数小伙伴都会有自 ...

  3. c++ 高性能日志库(muduo_AsyncLogging)

    c++ 高性能日志库(muduo_AsyncLogging) 实现一个高效的网络日志库要解决那些问题? 首先明确一下问题的模型,这是一个典型的多生产者 单消费者问题,对于前端的日志库使用者来说,应该做 ...

  4. zlog 纯C日志函数库的简单使用方法

    zlog简述: log是一个高性能.线程安全.灵活.概念清晰的纯C日志函数库. 事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx).C程序员都喜 ...

  5. GO的日志库log竟然这么简单!

    前言 最近在尝试阅读字节开源RPC框架Kitex的源码,看到日志库klog部分,果不其然在Go原生的log库的基础上增加了自己的设计,大体包括增加了一些格式化的输出.增加一些常用的日志级别等. 一番了 ...

  6. Google图片加载库Glide的简单封装GlideUtils

    Google图片加载库Glide的简单封装GlideUtils 因为项目里用的Glide的地方比较多,所有简单的封装了以下,其实也没什么,就是写了个工具类,但是还是要把基础说下 Glide的Githu ...

  7. easylog -- Linux 下的简单日志库

    之前使用 log4c 或者 log4cpp 的时候, 总需要配置一些文件和链接库之类复杂的配置. 虽然越复杂越说明这个软件支持的功能多.可选择性强, 但是对于一个小的项目,或者要研究他人的代码而加点儿 ...

  8. Linux共享库 zlog日志

    [ global] strict init = false buffer min = buffer max = 2MB rotate lock file= /tmp/zlog.lock [format ...

  9. GitHub 上排名前 100 的 Android 开源库进行简单的介绍

    若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...

随机推荐

  1. Python中的列表、元祖、字典

    一.列表 一组有序项目的集合.可变的数据类型[可进行增删改查] 列表是以方括号"[]"包围的数据集合,不同成员以","分隔. 列表中能够包括不论什么数据类型,也 ...

  2. 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)

    两个月之前准备软考时,简单的从理论上总结了最经常使用的数据结构和算法,比方:线性表,链表,图.在进行java开发时,jdk为我们提供了一系列对应的类来实现主要的数据结构.jdk所提供的容器API位于j ...

  3. 【转载】C#扫盲之:带你掌握C#的扩展方法、以及探讨扩展方法的本质、注意事项

    1.为什么需要扩展方法 .NET3.5给我们提供了扩展方法的概念,它的功能是在不修改要添加类型的原有结构时,允许你为类或结构添加新方法. 思考:那么究竟为什么需要扩展方法呢,为什么不直接修改原有类型呢 ...

  4. 随便写一点最近开发遇到的问题和解决方法 大部分关于laravel和php

    laravel里要想对对象进行自己设计的排序(usort()), 得用匿名方法,  原声php就不用 php里面可以随便写html代码,  比如可以把html直接后缀名改成.php, 然后在任何地方& ...

  5. Day1 [上]- 认识Python

    python简单介绍: python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  6. C++输入一行字符串的一点小结

    C++输入一行字符串的一点小结 原文链接: http://www.wutianqi.com/?p=1181 大家在学习C++编程时.一般在输入方面都是使用的cin. 而cin是使用空白(空格,制表符和 ...

  7. SQL还原数据库后,数据库显示受限制用户解决方法

    数据库->属性->选项

  8. Android 一键清理动画

    版本号:1.0  日期:2014.7.29 2014.7.30 版权:© 2014 kince 转载注明出处   一键清理是非常多Launcher都会带有的功能,其效果也比較美观.实现方式或许有非常多 ...

  9. VS重置命令:devenv.exe/resetuserdata

    VS命令行下执行下面的命令: devenv.exe/resetuserdata

  10. 海康DS NVR播放URL规则

    URL规定:rtsp://username:password@<address>:<port>/Streaming/Channels/<id>(?parm1=val ...