C语言日志组件库 - zlog
fmms
13年前
zlog是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。
事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是个系统级别的轮子,不过速度慢,而且功能比较单调。 log4c异常坑爹(有内存泄漏、效率低等等),而且已经停止开发
所以我(难易)写了zlog。
zlog有这些特性:
• syslog风格的配置文件,易学易用
• 纲目分类模型,比log4j系列的继承模型更加清晰
• 多种输出,包括动态文件、静态文件、stdout、stderr、syslog
• 可以在运行时动态刷新配置,只需要调用函数zlog_update()
• 高性能,在我的笔记本上达到72'000条日志每秒, 大概是syslog(3)配合rsyslogd的200倍速度
• 用户可以自定义等级,无需改变库代码
• 多线程和多进程写同一个日志的情况下,安全转档(转档就是把太大的日志重命名)
• 可以精确到微秒
• MDC,一个log4j风格的键-值对的表,可以扩展用户自定义的字段
• 自诊断,可以在运行时输出zlog自己的日志和配置状态
• 不依赖其他库,只要是个POSIX系统就成
https://github.com/HardySimpson/zlog
https://github.com/HardySimpson/zlog