/log4z

从log4z那升级过来的 ,因为原作者不更新该库了,我更正了若干部分,取之于网,用之于网,能达到20万条1K的日志写盘...

Primary LanguageC++

log4z

从log4z那升级过来的。原作者YaweiZhang yawei.zhang@foxmail.com 原地址https://github.com/zsummer/log4z 取之于网,用之于网,

1. 缘由

因为原作者宣布不更新该库了,而我试用了一下觉得很不错,只是有些小问题, 按照需要了解项目每一行代码的原则,我阅读了全文,并更正了若干部分; 测试,能达到20万条1K的日志写盘...

2. 更正了线程写盘刷新频率

在线程函数run中,设置每100次写操作,执行一个flush操作;

3. 添加了限速算法

添加了计算写盘和添加到队列的速度;prepushlog函数中通过对比速度,重新控制调用速度; 即通过算法,计算出合理的时延值,让入队列前等待一会,从而保证入队速度与写盘速度一致,放置内存过度堆积; 否则,原版在linux中极限添加会因为队列过长,时延过大,造成卡顿;

4. 测试程序

测试程序有2种工作方式,1种是按照某个速度提交日志,测试是否能落盘;第2种是极速提交,由内部在prepushlog函数使用算法控制提交速度; 在windows10和ubuntu18.04上,(固态盘)都可以做到20万条每秒的提交速度;