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 的开 ...
随机推荐
- project管理之makefile与自己主动创建makefile文件过程
(风雪之隅 http://www.laruence.com/2009/11/18/1154.html) Linux Makefile自己主动编译和链接使用的环境 想知道到Linux Makefile系 ...
- 什么是猴子补丁(monkey patch)
monkey patch指的是在执行时动态替换,通常是在startup的时候. 用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/ ...
- 修改host文件原理 localhost,127.0.0.1之间有什么区别
修改host文件原理http://www.zhihu.com/question/19782572 localhost与127.0.0.1的区别是什么 相信有人会说是本地ip,曾有人说,用127.0.0 ...
- Linaro/Yocto/Openwrt
http://en.wikipedia.org/wiki/Linaro Linaro From Wikipedia, the free encyclopedia This article ap ...
- java 是 传值还是传址 Pass-by-value or Pass-by-reference
原文在此,写的非常好,解答了我的疑问 http://www.javadude.com/articles/passbyvalue.htm 首先放上一段代码,我是在找寻这段代码的内部原理的时候,在stac ...
- Unity光滑与粗糙的材质——相似于生锈的金属表面
纹理是在Photoshop中制作的,终于效果则是在Unity里得到的.这样的类型的材质.在3D游戏中非经常见.
- 发送验证码60s倒计时实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 从头认识java-15.1 填充容器(2)-利用Collection的addAll方式
接着上一章节,我们继续介绍填充容器. 这一章节我们结束还有一种填充容器的方式:addAll 样例: package com.ray.ch15; import java.util.ArrayList; ...
- 【iOS开发】---- UIView动画
iOS 动画UIView动画 原文:http://www.cocoachina.com/bbs/read.php?tid=110168 1.概述 UIKit直接将动画集成到UIView类中,实现简 ...
- 【BZOJ1042】[HAOI2008]硬币购物 容斥
[BZOJ10492][HAOI2008]硬币购物 Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值 ...