为什么syslog.h会在我的C程序中跳过日志消息?

时间:2013-10-12 10:18:22

标签: c syslog libev

我有一个由libev事件循环组成的C程序。对于其中一个观察者,有一个内循环,产生100多条日志消息(每个长约200个字符)。出于某种原因,只有三分之一的消息进入日志文件。该程序不会退出。我可以通过数据告诉观察者成功完成内部循环,它不会无声地失败。

有趣的是,如果我在每个syslog调用之后插入一个printf语句,所有日志消息都会使它成为日志文件。

如何修复这种奇怪的行为?当然,我希望所有syslog调用都能在日志文件中生成相同的条目。

我不能自由地提供示例代码,但所有调用都是完全的vanilla syslog调用。在该计划的其他地方,他们工作正常。

如果重要,我在OSX 10.7.5中通过OSX终端中的ssh在VirtualBox VM中使用Debian 7(gcc 4.7.2-5)。

1 个答案:

答案 0 :(得分:1)

因此,结果是rsyslog开始的消息速率限制。根据here更改默认设置会导致问题消失。