在我们当前的实现中,其中一个服务器具有为RollingRandomAccessFile和另一个RollingFile设置的log4j2的配置.我想知道两者之间的区别是什么,如果可能的话,各自的利弊.
谢谢
主要区别在于性能:http: //logging.apache.org/log4j/2.x/manual/async.html#FileAppender_vs._RandomAccessFileAppender
RandomAccessFileAppender总是缓冲,而FileAppender提供配置开关(bufferedIO).如果您想确保您的消息在磁盘上(例如审计日志记录),两者都有一个"immediateFlush"配置选项.最后,RandomAccessFileAppender的默认缓冲区大小更大:对于FileAppender,256*1024字节对8*1024字节(两个appender缓冲区大小都可以在配置中设置).
还有一件事,底层实现在一种情况下使用RandomAccessFile,在另一种情况下使用OutputStream(顾名思义).将RandomAccessFileAppender与unix logrotate实用程序(https://issues.apache.org/jira/browse/LOG4J2-354)相结合存在一个已知问题,Log4j团队建议您使用RollingRandomAccessFile进行翻转并避免使用unix logrotate实用程序.显然,FileAppender可以与logrotate结合使用 - 我们没有听说过任何问题.(因为这个问题已经提到了两个appender的Rolling ......变种你已经做对了,我只是想我应该提一下.)
| 归档时间: |
|
| 查看次数: |
7336 次 |
| 最近记录: |