我正在使用Log4J Extras中提供的 TimeBasedRollingPolicy 促进的自动日志滚动和压缩(请参阅下面的配置)。
执行此日志记录的应用程序经常停止/启动是正常的,我注意到如果应用程序在翻转触发事件期间停止(在这种情况下为每小时翻转),则不会发生自动压缩。我觉得这很奇怪,因为滚动本身(没有压缩)仍然发生并且似乎工作正常。
不能为不连续运行的应用程序进行日志压缩工作吗?
有谁知道如何使用 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>