1.安装
下载 https://github.com/downloads/HardySimpson/zlog/zlog-latest-stable.tar.gz
解压, 安装
1 |
$ tar -zxvf zlog-0.9.0. tar .gz
|
3 |
$ ./configure -- enable - test
|
把测试程序和案例也编译下,反正不安装
默认安装在/usr/local/下,包括libzlog.so和zlog.h
2.介绍一下配置文件
zlog里面有三个重要的概念,category,format,rule
分类(Category)用于区分不同的输入,代码中的分类变量的名字是一个字符串,在一个程序里面可以通过获取不同的分类名的category用来后面输出不同分类的日志,用于不同的目的。
格式(Format)是用来描述输出日志的格式,比如是否有带有时间戳, 是否包含文件位置信息等,上面的例子里面的格式simple就配置成简单的用户输入的信息+换行符。
规则(Rule)则是把分类、级别、输出文件、格式组合起来,决定一条代码中的日志是否输出,输出到哪里,以什么格式输出。简单而言,规则里面的分类字符串和代码里面的分类变量的名字一样就匹配,当然还有更高级的纲目分类匹配。规则彻底解耦了各个元素之间的强绑定,例如log4j就必须为每个分类指定一个级别(或者从父分类那里继承),这在多层系统需要每一层都有自己的级别要求的时候非常不方便。
现在试着写配置文件,配置文件名无所谓,放在哪里也无所谓,反正在zlog_init()的时候可以指定
4 |
my_cat.DEBUG >stdout; simple |
在目前的配置文件的例子里面,可以看到my_cat分类,>=debug等级的日志会被输出到stdout(标准输出),并且输出的格式是simple这个格式,也就是用户输入信息+换行符。如果要输出到文件并控制文件大小为1兆,规则的配置应该是
1 |
my_cat.DEBUG "/var/log/aa.log" , 1M; simple
|
3.在代码中使用
07 |
int main( int argc, char ** argv)
|
12 |
rc = zlog_init( "/etc/zlog.conf" );
|
14 |
printf ( "init failed\n" );
|
18 |
c = zlog_get_category( "my_cat" );
|
20 |
printf ( "get cat fail\n" );
|
25 |
ZLOG_INFO(c, "hello, zlog" );
|
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
|
5.高级功能
- syslog风格的配置文件,易学易用
- 可以灵活配置日志输出的格式,类似于log4j的pattern layout
- 纲目分类模型,比log4j系列的继承模型更加清晰
- 多种输出,包括动态文件、静态文件、stdout、stderr、syslog
- 可以在运行时动态刷新配置,只需要调用函数zlog_reload()
- 高性能,在我的笔记本上达到72'000条日志每秒, 大概是syslog(3)配合rsyslogd的200倍速度
- 用户可以自定义等级,无需改变库代码
- 多线程和多进程写同一个日志的情况下,安全转档(转档就是把太大的日志重命名)
- 可以精确到微秒
- 如果一个程序默认只用一个分类输出,zlog提供了简单的调用包装dzlog
- MDC,一个log4j风格的键-值对的表,可以扩展用户自定义的字段
- 自诊断,可以在运行时输出zlog自己的日志和配置状态
- 不依赖其他库,只要是个POSIX系统就成
6.相关链接:
下载:
https://github.com/downloads/HardySimpson/zlog/zlog-latest-stable.tar.gz 上手指南: 在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://hardysimpson.github.com/zlog 中文主页:
http://www.oschina.net/p/zlog 作者博客:
http://my.oschina.net/HardySimpson/blog 作者email: HardySimpson1984@gmail.com
相关推荐
3. **API调用**:在程序中,开发者可以通过`zlog_init`初始化日志库,然后使用如`zlog_info`、`zlog_error`等函数记录不同级别的日志。 4. **关闭与清理**:在程序结束前,需调用`zlog_fini`关闭日志系统,释放相关...
Linux日志记录软件Zlog是一款开源的、安全且高效的解决方案,专为在Linux环境中管理和记录系统及应用的日志数据而设计。它提供了丰富的功能和高度的可配置性,以满足不同用户的需求。本文将深入探讨Zlog的核心特性、...
《zlog:高性能、线程安全的纯C日志库》 在软件开发中,日志记录是一项不可或缺的任务,它能够帮助开发者追踪程序运行状态,定位错误,优化性能。"zlog"是一款专为满足这些需求而设计的开源日志库,由Hardysimpson...
zlog是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。 事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C 的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子...
可以在运行时动态刷新配置,只需要调用函数zlog_reload() 高性能,在我的笔记本上达到72'000条日志每秒, 大概是syslog(3)配合rsyslogd的200倍速度 用户可以自定义等级,无需改变库代码 多线程和多进程写同一个日志的...
C语言日志工具Zlog是开发者在C编程中记录程序运行状态、调试信息以及错误信息的重要辅助工具。它提供了一种高效、灵活且易于使用的接口,使得程序员可以在代码中方便地插入日志语句,帮助追踪和分析程序的运行过程。...
"纯C的日志库ZLOG"是专为C语言项目设计的一个轻量级、高效且易于使用的日志记录解决方案。这个库允许开发者在C语言环境中方便地实现日志功能,从而提升代码的可维护性和调试性。 ZLOG库的亮点在于它的纯C实现,这...
EasyLogger(https://github.com/armink/EasyLogger)是一款超轻量级...相比log4c、zlog这些知名的C日志库,EasyLogger的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。
- **API使用**:在C程序中,通过`zlog_init`初始化,`zlog`函数进行日志记录,最后使用`zlog_fini`关闭。 **3. zlog的版本更新** 在1.2.15这个版本中,可能包含以下更新: - **性能优化**:可能对内部算法或数据...
zlog是一个高可靠性、高性能、线程安全、灵活、概念清晰的纯C日志函数库。事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好...
Zlog是一个高度一致的高性能共享日志,旨在在Ceph之上运行。 有关Zlog的更多信息: 资料来源: : 系统设计: : 异步API设计: : 依存关系 Zlog设计为在属于Ceph存储系统的RADOS对象存储之上运行。 go-ceph项目...
在标题提到的"一个纯C写的Zlog日志库,可在windows平台下使用",我们可以理解为这是一个经过移植和编译,专门为Windows系统优化的Zlog版本。 描述中提到,"Zlog是linux平台下的开源库,但是windows平台下面极少",...
zlog 是一个高可靠性、高性能、线程安全、灵活、概念清晰的纯 C 日志函数库。它提供了许多有用的特性,例如 syslog 分类模型、日志格式定制、多种输出、运行时手动、自动刷新配置文件、高性能、用户自定义等级、多...
zlog是一个高效、轻量级的日志库,广泛应用于C语言开发的项目中,为开发者提供了一种简单而强大的日志记录功能。"zlog-latest-stable.tar.gz"是zlog的最新稳定版本的压缩包,包含了zlog库的所有源代码和必要的构建...
《深入解析zlog:C语言开源日志库》 在软件开发中,日志记录是一项不可或缺的功能,它有助于开发者追踪程序运行状态、定位错误、优化性能。本文将围绕"zlog"这一C语言开源日志库展开,详细介绍其设计理念、功能特性...
zlog是一款高效、轻量级的日志库,主要应用于C语言和C++编程环境中。它提供了丰富的功能,包括多线程支持、日志级别控制、自定义日志格式以及多种输出方式,使得开发者在处理日志时能更加便捷。本文将详细介绍zlog的...
zlog是一个高效、轻量级的日志记录库,设计用于替代传统的syslog服务。它以更快的速度、更高的可配置性和更好的线程安全性著称,特别适用于对性能有较高要求的应用场景。 【zlog与syslog的对比】 syslog是Linux...
`zlog`是一个高效、易用的日志库,主要由C语言编写,同时兼容C++。这个开源项目旨在提供一种简单、灵活且高性能的日志记录解决方案,尤其适合嵌入式系统和服务器端软件。在源码中,我们可以深入理解其设计原理和实现...
zlog是一个高效、稳定且功能丰富的日志记录库,被广泛应用于各种C语言开发的项目中。"zlog-latest-stable.zip"文件正是这个著名日志库的最新稳定版本。在本文中,我们将深入探讨zlog的核心特性、安装过程、使用方法...
ZLog 是一个高性能的日志库,它具有低性能损耗的原因主要包括以下几点: 异步写入:ZLog 采用了异步写入的机制,即在记录日志时不会阻塞程序的执行,而是将日志信息放入一个队列中,并由后台线程进行实际的写入...