纯 C 日志函数库,zlog 1.0.3 发布
openkk 12年前
<p><a href="/misc/goto?guid=4958336037474582756" target="_blank">zlog</a>是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。</p> <p>事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。 printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是个系统级别的轮子,不过速度慢,而且功能比较单调。 log4c异常坑爹(有内存泄漏、效率低等等),而且已经停止开发</p> <p>所以我(难易)写了zlog。 </p> <p>zlog有这些特性:</p> <p> * syslog分类模型,比log4j模型更加直接了当</p> <p> * 日志格式定制,类似于log4j的pattern layout</p> <p> * 多种输出,包括动态文件、静态文件、stdout、stderr、syslog、用户自定义输出函数</p> <p> * 运行时刷新配置——调用函数zlog_reload()</p> <p> * 高性能,在我的笔记本上达到72'000条日志每秒, 大概是syslog(3)配合rsyslogd的200倍速度 </p> <p> * 用户自定义等级</p> <p> * 多线程和多进程环境下保证安全转档</p> <p> * 精确到微秒</p> <p> * 简单调用包装dzlog(一个程序默认只用一个分类)</p> <p> * MDC,线程键-值对的表,可以扩展用户自定义的字段</p> <p> * 自诊断,可以在运行时输出zlog自己的日志和配置状态</p> <p> * 不依赖其他库,只要是个POSIX系统就成(当然还要一个C99兼容的vsnprintf)</p> <p><span class="body"><span class="log"><br /> <br style="font-weight:bold;" /> <span style="font-weight:bold;">zlog 1.0.3 发布了,该版本支持动态的定义每多少条文件fsync一次日志,以及定期加载配置文件。</span></span></span></p>