負荷の高いログの下で log4j のログに問題が発生しています。 定期的に (1 時間ごとに最大 4 ~ 20 分) ロールアウトされて圧縮されたファイルの一部のログが失われます。
構成:
<appender name="MY_LOG" class="org.apache.log4j.appender.TimeAndSizeRollingAppender">
<param name="File" value="../logs/mylog.log" />
<param name="DatePattern" value=".yyyy-MM-dd"/>
<param name="MaxFileSize" value="40MB"/>
<param name="MaxRollFileCount" value="100"/>
<param name="ScavengeInterval" value="300000"/>
<param name="encoding" value="UTF-8" />
<param name="CompressionAlgorithm" value="ZIP"/>
<param name="CompressionMinQueueSize" value="5"/>
<param name="CompressionThreadPriority" value="1"/>
<param name="CompressionLevel" value="1"/>
<param name="CompressionUseBlockingQueue" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %22.22t| %22.22c{1}| %m%n"/>
</layout>
</appender>
<param name="CompressionUseBlockingQueue" value="true"/>
ログが失われるのを防ぐために、プロパティが追加されました。ファイル (5 つの一時ファイルがある場合) がマージされて圧縮されている間、ログが失われると考えていました (今でもそうです)。それらが何らかの形で上書きされる可能性があること。ただし、このプロパティは機能しませんでした。
問題を探す場所や構成を変更する方法がわからないため、ログが失われたり上書きされたりすることはありません。
私たちが試すかもしれない提案はありますか?
ありがとう