@难易 你好:
上次在你的帮助下,问题解决了。非常感谢。
现在我在使用zlog过程中又遇到了几个问题,麻烦帮忙看看能不能解决的:
1) 我的程序结构是这样的,主工程一个exe文件,内部使用了zlog输出文本日志,同目录下一个dll,dll内部也使用zlog输出文本日志,主工程动态调用dll。现在的现象是程序起来后只有其中一个日志能正常输出,另一个总是在zlog_init函数报错。(P.S我尝试2个Zlog使用不同的.conf配置文件名,结果还是不行!我怀疑是不是那个lock锁文件独占的关系造成的?麻烦帮忙看下应该怎么配置一下,可以使两者都正常工作。。。)
2) 我想问下,现在zlog库支持的输出到文件的最大日志字串长度是多少?我尝试输出一个80K左右长度的字串,结果失败,而且也没有任何返回值或异常暴露出来。。。。
1.一个进程同时只允许使用一个配置文件,当你的dll发现在主程序内已经被init之后,再次调用zlog_init会失败。如下:<preclass="brush:cpp;toolbar:true;auto-links:false;">zlog_init("aa.conf");ac=zlog_get_category("aa");zlog_info(ac,"hello,aa");zlog_init("bb.conf");/失败/bc=zlog_get_category("bb")/成功,从aa.conf中获取分类/zlog_info(bc,"hello,bb")
当然,只要你在aa.conf里面定义了bb这个分类,后面那些对bc分类的输出还是有效的
2.日志的长度在配置的[global]区中间调整
<atarget="_blank"rel="nofollow">http://hardysimpson.github.com/zlog/UsersGuide-CN.html#htoc15
zlog在堆上为每个线程申请缓存。"buffermin"是单个缓存的最小值,zlog_init()的时候申请这个长度的内存。写日志的时候,如果单条日志长度大于缓存,缓存会自动扩充,直到到"buffermax"。单条日志再长超过"buffermax"就会被截断。如果"buffermax"是0,意味着不限制缓存,每次扩充为原先的2倍,直到这个进程用完所有内存为止。缓存大小可以加上KB,MB或GB这些单位。默认来说"buffermin"是1K,"buffermax"是2MB。
原来1.2.8版在碰到超长的输入时有问题,已经修改,下载这个再试试……
<atarget="_blank"rel="nofollow">https://github.com/HardySimpson/zlog/archive/latest-stable.tar.gz
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。