zlog 使用相关问题
@难易 你好:
上次在你的帮助下,问题解决了。非常感谢。
现在我在使用zlog过程中又遇到了几个问题,麻烦帮忙看看能不能解决的:
1) 我的程序结构是这样的,主工程一个exe文件,内部使用了zlog输出文本日志,同目录下一个dll,dll内部也使用zlog输出文本日志,主工程动态调用dll。现在的现象是程序起来后只有其中一个日志能正常输出,另一个总是在zlog_init函数报错。(P.S我尝试2个Zlog使用不同的.conf配置文件名,结果还是不行!我怀疑是不是那个lock锁文件独占的关系造成的?麻烦帮忙看下应该怎么配置一下,可以使两者都正常工作。。。)
2) 我想问下,现在zlog库支持的输出到文件的最大日志字串长度是多少?我尝试输出一个80K左右长度的字串,结果失败,而且也没有任何返回值或异常暴露出来。。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
2.日志的长度在配置的[global]区中间调整
http://hardysimpson.github.com/zlog/UsersGuide-CN.html#htoc15
zlog在堆上为每个线程申请缓存。"buffer min"是单个缓存的最小值,zlog_init()的时候申请这个长度的内存。写日志的时候,如果单条日志长度大于缓存,缓存会自动扩充,直到到"buffer max"。 单条日志再长超过"buffer max"就会被截断。如果 "buffer max" 是 0,意味着不限制缓存,每次扩充为原先的2倍,直到这个进程用完所有内存为止。缓存大小可以加上 KB, MB 或 GB这些单位。默认来说"buffer min"是 1K , "buffer max" 是2MB。
1.一个进程同时只允许使用一个配置文件,当你的dll发现在主程序内已经被init之后,再次调用zlog_init会失败。如下:
当然,只要你在aa.conf里面定义了bb这个分类,后面那些对bc分类的输出还是有效的