4

我们有一个使用 log4j 的高速、大容量应用程序。通常我们一直在使用 SyslogAppender,认为它是重量最轻、速度最快的 appender。但是我们看到 SYSLOG 在高容量下的 CPU 利用率很高(因为 SYSLOG conf 中的过滤规则)。

我们可能想切换到使用 FileAppender。问题是我们是否想将它与 log4j AsyncAppender 结合使用来消除由于刷新(强制)到磁盘而导致的任何暂停?

(该应用程序对延迟非常敏感,因此我们希望最大限度地减少附加程序可能添加的任何延迟。)另外 - 我不确定 SyslogAppender 是否真的比 FileAppender 更快(但自从我开始以来就是这样)。

对此的任何想法将不胜感激。

4

1 回答 1

6

我肯定会使用 AsyncAppender。

我已经看到低延迟应用程序几乎停止使用标准文件附加程序。诚然,他们在共享硬件和磁盘上使用(OS)VM,因此一个 VM 可以独占磁盘 IO,并在尝试记录时使其他 VM 停止。

您可能还会研究日志记录到 JMS 和其他异步策略。

于 2011-09-08T17:15:33.477 回答