网站首页 > 开源技术 正文
zlog是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。
事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是个系统级别的轮子,不过速度慢,而且功能比较单调。log4c异常坑爹(有内存泄漏、效率低等等),而且已经停止开发
所以我(难易)写了zlog。
zlog有这些特性:
- syslog分类模型,基于规则路由过滤,比log4j模型要正确高效
- 日志格式定制,类似于log4j的pattern layout
- 多种输出,包括动态文件、静态文件、stdout、stderr、syslog、用户自定义输出函数
- 运行时手动或自动刷新配置(同时保证安全)
- 高性能,在我的笔记本上达到338'638条日志每秒, 大概是syslog(3)配合rsyslogd的1000倍速度
- 高可靠性和速度之间的平衡,用户自定义多少条日志后fsync数据到硬盘
- 用户自定义等级
- 多线程和多进程环境下保证安全转档
- 精确到微秒
- 简单调用包装dzlog(一个程序默认只用一个分类)
- MDC,线程键-值对的表,可以扩展用户自定义的字段
- 自诊断,可以在运行时输出zlog自己的日志和配置状态
- 不依赖其他库,只要是个POSIX系统就成(当然还要一个C99兼容的vsnprintf)
项目代码:
https://gitee.com/hardysimpson/zlog
网友提供的其他版本,方便其他平台安装
- auto tools版本: https://github.com/bmanojlovic/zlog
- cmake版本:https://github.com/lisongmin/zlog
- windows版本: https://github.com/lopsd07/WinZlog
猜你喜欢
- 2024-10-20 今日头条在消息服务平台和容灾体系建设方面的实践与思考
- 2024-10-20 教你如何解决最常见的58种网络故障排除方法
- 2024-10-20 Linux 问题故障定位,看这一篇就够了,九招搞定所有问题
- 2024-10-20 iOS大解密:玄之又玄的KVO(解密电视剧全集在线观看免费完整版)
- 2024-10-20 在C语言中,如何优雅地实现全局错误日志记录?
- 2024-10-20 嵌入式大杂烩周记 第 7 期:zlog(嵌入式实战)
- 2024-10-20 嵌入式老司机这样打log(嵌入式logo)
- 2024-10-20 log4c ,一个轻量级的C++日志库(log4j日志)
- 2024-10-20 iOS利用VideoToolbox实现视频硬解码
- 2024-10-20 iOS封装C语言P Thread(c语言程序封装)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)