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

为什么syslog.h在我的C程序中跳过日志消息?,c,syslog,libev,C,Syslog,Libev,我有一个C程序,它由一个libev事件循环组成。其中一个观察者有一个内部循环,产生100多条日志消息(每条约200个字符长)。由于某些原因,只有三分之一的消息进入日志文件。程序不会退出。我可以从数据中看出,观察者成功地完成了内部循环,而不是默默地失败 有趣的是,如果我在每次syslog调用之后插入printf语句,那么所有日志消息都会很好地写入日志文件 这种奇怪的行为如何被纠正?当然,我希望所有的syslog调用都会在日志文件中产生相同的条目 我不能随意给出示例代码,但所有调用都是普通的sysl

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

有趣的是,如果我在每次syslog调用之后插入
printf
语句,那么所有日志消息都会很好地写入日志文件

这种奇怪的行为如何被纠正?当然,我希望所有的syslog调用都会在日志文件中产生相同的条目

我不能随意给出示例代码,但所有调用都是普通的syslog调用。在这个项目的其他地方,它们工作得很好


如果有必要的话,我是在OSX 10.7.5中通过OSX终端中的ssh在VirtualBox虚拟机中使用Debian 7(gcc 4.7.2-5)。

因此这是
rsyslog
的消息速率限制。根据更改默认值可以消除该问题