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

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

(该应用程序对延迟非常敏感,因此我们希望最小化追加器可能增加的任何延迟。)另外-我不确定SyslogAppender是否真的比FileAppender更快(但这就是我开始以来的方式)。

任何想法,将不胜感激。

最佳答案

我肯定会使用AsyncAppender。

我已经看到低延迟的应用程序实际上停止使用标准文件附加器。不可否认,他们在共享硬件和磁盘上使用(OS)VM,因此一个VM可以独占磁盘IO,而其他VM则在尝试登录时停止运行。

您可能还会考虑登录到JMS和其他异步策略。

07-26 09:27
查看更多