C语言日志组件库 - zlog

分享到:
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
昵    称:
验证码:

相关文档:

  • C++的Properties读写库 libproperties
    提供一个简单易用的C++类Properties用以读写基于xml格式的配置文件。...
  • C++的IO库 MeteoIO
    MeteoIO 是一个跨平台的 C++ 库,提供数据的格式化和协议无关的数据访问,提供安全可靠的I/O处理。...
  • C++ 函数编程库 FC++
    FC++ 是最好的基于 C++ 的函数编程库开放源码实现,可以把它插入遗留的 C++ 代码中。BSFC++ 等项目中已经使用了 FC++,BSFC++ 是一个用 C++ 进...
  • C++中对字符串进行插入、替换、删除操作
    C++中对字符串进行插入、替换、删除操作...
  • C编译器 c++编译器 wieldylcc
    用c++重构了lcc源代码,去掉了lcc中支持多种处理器的模式,仅支持x86一种。项目目标是编译器的源代码是易于理解的,编译出的asm文件也...
  • C++ 标准类库 STLPort
    STLport 是一个多平台的 ANSI C++ 标准类库实现,具备很多高级特征,并且为效率,异常安全性和线程安全性做了优化,还做了许多扩展,如...
  • C语言的hash表实现:uthash
    uthash是一个C语言的hash表实现。它以宏定义的方式实现hash表,不仅加快了运行的速度,而且与关键类型无关的优点。 uthash使用起来十...
  • C 语言单元测试框架:CHEAT
    CHEAT 是一个微型的 C 语言单元测试框架。没有任何依赖和安装配置,使用简单只需一个头文件和一个测试用例即可...
  • CMake Tools for Visual Studio
    这是一个 Visual Studio 的扩展为 CMake 语言提供了语法高亮和 IntelliSense 支持。...
  • OpenDDS:数据分布式服务(DDS)的C++实现
    OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG 的 数据分布式服务 (DDS) 。...
  • C语言的SPDY开发包 libspdy
    libspdy 是 C 语言实现对 SPDY 协议支持的库。只需依赖 zlib 包...
  • C程序运行时内存结构分析
    静态变量存储在静态存储区,局部变量存储在动态存储区(栈),代码存放在代码区 寄存器,EBP指向栈底,ESP指向栈顶,EIP指向正在执...
  • zip文件C语言解析包 ZZIPlib
    ZZIPlib 是一个轻量级的用来从ZIP文件抽读取文件的C语言包,同时也可以用来将多个文件压缩成zip格式,采用的是 zlib 库开发。...
  • 将二进制文件加到C源码中的工具包:incbin.bat
    有时你需要将二进制数据嵌入至C / C++程序。 INCBIN是一个跨平台的工具,刚好用来做到这一点。不像其他的解决方案,INCBIN是使用操作系...
  • 用c语言实现的多平台开发库:TBOX
    TBOX是一个用c语言实现的多平台开发库,支持 windows、linux、mac、ios、android 以及其他嵌入式系统。...
  • C++多媒体处理库 libCVD
    libCVD 是一个高可移植和具备高性能的用于处理计算机视觉、图像、视频的C++库。其重点是提供简单高效的高质量的图形和视频处理方法...
  • VS2013中的C++11新特性
    Visual C++ 2013 Preview 在6月发布了,C++开发者又找到一个编译器可以更好的支持ISO C++ 11 的特性了.本文介绍了这些新的特性并附有代码实例....
  • C 语言常用工具包 LibUtillery
    LibUtillery是一个免费的,使用BSD授权程序员工具箱;一个轻量级和彻底记载收集分库,以解决一般和经常性任务。...
  • 构建高性能系统的C语言事件框架:libPhenom
    libPhenom 是 Facebook 发布的一个C语言事件框架,用于构建高性能和高可扩展的系统。支持多线程,提供内存管理和常用数据结构(hash tables, l...
  • 编写跨平台应用的C++类库 commonc++
    commonc++ 是一个 C++ 类库,用于在编写跨平台的程序时提供统一的接口和方法。commonc++ 封装了例如线程、信号、网络通讯、进程调度、日...