zlog 使用相关问题

发布于 2021-11-21 05:21:28 字数 631 浏览 880 评论 2

@难易 你好:

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

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

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

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


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

悸初 2021-11-22 03:24:12

2.日志的长度在配置的[global]区中间调整

http://hardysimpson.github.com/zlog/UsersGuide-CN.html#htoc15

  • buffer min
  • buffer max

    zlog在堆上为每个线程申请缓存。"buffer min"是单个缓存的最小值,zlog_init()的时候申请这个长度的内存。写日志的时候,如果单条日志长度大于缓存,缓存会自动扩充,直到到"buffer max"。 单条日志再长超过"buffer max"就会被截断。如果 "buffer max" 是 0,意味着不限制缓存,每次扩充为原先的2倍,直到这个进程用完所有内存为止。缓存大小可以加上 KB, MB 或 GB这些单位。默认来说"buffer min"是 1K , "buffer max" 是2MB。

一人独醉 2021-11-22 02:45:13

1.一个进程同时只允许使用一个配置文件,当你的dll发现在主程序内已经被init之后,再次调用zlog_init会失败。如下:

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分类的输出还是有效的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文