log4j2 で 出力をバッファリングするには immediateFlush 設定が必要
log4j2 で、 bufferedIO="true"
(そもそもtrueがデフォルト)にしても出力がバッファリングされないので悩んでいたら、
immediateFlush="false"
も設定しないと、各ログ毎にフラッシュされてしまうことに気づいた。
よって、ログ出力をバッファリングするには、 immediateFlush="false"
も設定しないと駄目
例:
log4j2.xml
<Appenders>
<RollingFile name="Name" fileName="/var/log/hoge.log" filePattern="/var/log/hoge.log.%i.gz" immediateFlush="false">
<PatternLayout pattern="%d{yyyy-MM-dd'T'HH:mm:ssZ} %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
<DefaultRolloverStrategy max="10" fileIndex="min"/>
</RollingFile>
</Appenders>
参考