Log4j AsyncAppender

时间:2011-09-08 15:46:08

标签: java log4j low-latency

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

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

(该应用程序对延迟非常敏感,因此我们希望最小化appender可能添加的任何延迟。)另外 - 我不确定SyslogAppender是否真的比FileAppender更快(无论如何(但这是我开始以来的事情) )。

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

1 个答案:

答案 0 :(得分:6)

我肯定会使用AsyncAppender。

我已经看到低延迟应用程序几乎停止使用标准文件追加器。不可否认,他们在共享硬件和磁盘上使用(OS)虚拟机,因此一个虚拟机可以独占磁盘IO,并在尝试登录时停止其他虚拟机。

您还可以考虑记录到JMS和其他异步策略。