linux c c 常用的日志库,纯C日志函数库--zlog上手指南

1.安装

下载

解压, 安装

1$ tar -zxvf zlog-latest-stable.tar.gz

2$ cd zlog-x.x.x/

3$ ./configure --enable-test # 把测试程序和案例也编译下,反正不安装

4$ make

5$ sudo make install

6# 默认安装在/usr/local/下,包括libzlog.so和zlog.h

把测试程序和案例也编译下,反正不安装

默认安装在/usr/local/下,包括libzlog.so和zlog.h

2.介绍一下配置文件

zlog里面有三个重要的概念,category,format,rule

分类(Category)用于区分不同的输入,代码中的分类变量的名字是一个字符串,在一个程序里面可以通过获取不同的分类名的category用来后面输出不同分类的日志,用于不同的目的。

格式(Format)是用来描述输出日志的格式,比如是否有带有时间戳, 是否包含文件位置信息等,上面的例子里面的格式simple就配置成简单的用户输入的信息+换行符。

规则(Rule)则是把分类、级别、输出文件、格式组合起来,决定一条代码中的日志是否输出,输出到哪里,以什么格式输出。简单而言,规则里面的分类字符串和代码里面的分类变量的名字一样就匹配,当然还有更高级的纲目分类匹配。规则彻底解耦了各个元素之间的强绑定,例如log4j就必须为每个分类指定一个级别(或者从父分类那里继承),这在多层系统需要每一层都有自己的级别要求的时候非常不方便。

现在试着写配置文件,配置文件名无所谓,放在哪里也无所谓,反正在zlog_init()的时候可以指定

$ cat /etc/zlog.conf

2[formats]

3simple  =   "%m%n"

4[rules]

5my_cat.DEBUG            >stdout; simple

在目前的配置文件的例子里面,可以看到my_cat分类,>=debug等级的日志会被输出到stdout(标准输出),并且输出的格式是simple这个格式,也就是用户输入信息+换行符。如果要输出到文件并控制文件大小为1兆,规则的配置应该是

1my_cat.DEBUG            "/var/log/aa.log", 1M; simple

3.在代码中使用

01$ vi test_hello.c

02

03#include

04

05#include "zlog.h"

06

07int main(int argc, char** argv)

08{

09int rc;

10zlog_category_t *c;

11

12rc = zlog_init("/etc/zlog.conf");

13if (rc) {

14printf("init failed\n");

15return -1;

16}

17

18c = zlog_get_category("my_cat");

19if (!my_cat) {

20printf("get cat fail\n");

21zlog_fini();

22return -2;

23}

24

25ZLOG_INFO(c, "hello, zlog");

26

27zlog_fini();

28

29return 0;

30}

4.编译、然后运行!

1$ cc -c -o test_hello.o test_hello.c -I/usr/local/include

2$ cc -o test_hello test_hello.o -L/usr/local/lib -lzlog

3$ ./test_hello

4hello, zlog

5.高级功能syslog风格的配置文件,易学易用

可以灵活配置日志输出的格式,类似于log4j的pattern layout

纲目分类模型,比log4j系列的继承模型更加清晰

多种输出,包括动态文件、静态文件、stdout、stderr、syslog

可以在运行时动态刷新配置,只需要调用函数zlog_reload()

高性能,在我的笔记本上达到72'000条日志每秒, 大概是syslog(3)配合rsyslogd的200倍速度

用户可以自定义等级,无需改变库代码

多线程和多进程写同一个日志的情况下,安全转档(转档就是把太大的日志重命名)

可以精确到微秒

如果一个程序默认只用一个分类输出,zlog提供了简单的调用包装dzlog

MDC,一个log4j风格的键-值对的表,可以扩展用户自定义的字段

自诊断,可以在运行时输出zlog自己的日志和配置状态

不依赖其他库,只要是个POSIX系统就成

6.相关链接:下载:上手指南: 在zlog-latest-stable.tar.gz的doc文件夹内, GettingStart-CN.txt GettingStart-EN.txt使用攻略: 在zlog-latest-stable.tar.gz的doc文件夹内, UsersGuide-CN.pdf UsersGuide-EN.pdf英文主页:中文主页:作者博客:http://my.oschina.net/HardySimpson/blog作者email: HardySimpson1984@gmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值