Log4J Extrasで提供されている TimeBasedRollingPolicy によって促進される自動ログ ローリングと圧縮を使用しています(以下の構成を参照)。
このロギングを行っているアプリケーションが常に停止/開始するのは正常なことであり、ロールオーバー トリガー イベント (この場合は 1 時間ごとのロールオーバー) 中にアプリケーションが停止すると、自動圧縮が行われないことに気付きました。ローリング自体(圧縮なし)がまだ発生しており、正常に機能しているように見えるため、これは奇妙だと思います。
継続的に実行されないアプリケーションに対してログ圧縮を機能させることはできませんか?
Log4Jでこれを機能させる方法を知っている人はいますか?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true">
<appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/var/batchproc/logs/log4j_roll_compress_%d{yyyy-MM-dd-kk}.log.gz"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d] [%t] %-5p %c %m%n"/>
</layout>
</appender>
<root>
<appender-ref ref="ROLL"/>
</root>
</log4j:configuration>