开发者社区> 问答> 正文

zlog 使用相关问题?报错

@难易 你好:

    上次在你的帮助下,问题解决了。非常感谢。

     现在我在使用zlog过程中又遇到了几个问题,麻烦帮忙看看能不能解决的:

    1) 我的程序结构是这样的,主工程一个exe文件,内部使用了zlog输出文本日志,同目录下一个dll,dll内部也使用zlog输出文本日志,主工程动态调用dll。现在的现象是程序起来后只有其中一个日志能正常输出,另一个总是在zlog_init函数报错。(P.S我尝试2个Zlog使用不同的.conf配置文件名,结果还是不行!我怀疑是不是那个lock锁文件独占的关系造成的?麻烦帮忙看下应该怎么配置一下,可以使两者都正常工作。。。)

    2) 我想问下,现在zlog库支持的输出到文件的最大日志字串长度是多少?我尝试输出一个80K左右长度的字串,结果失败,而且也没有任何返回值或异常暴露出来。。。。
   


展开
收起
爱吃鱼的程序员 2020-06-22 21:53:06 691 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    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

    • buffermin
    • buffermax

      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

    2020-06-22 21:53:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载