我的log4JAppender遇到了这个问题。
我正在使用此配置(log4j-conf.xml)
<appender name="CONTROLLER_CALL_LOGGER"class="org.apache.log4j.rolling.RollingFileAppender">
<param name="Threshold" value="INFO" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="${catalina.base}/logs/dpm-web-controllerCalls.%d{yyyyMMddHH}.gz" />
<param name="ActiveFileName" value="${catalina.base}/logs/dpm-web-controllerCalls.log" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %m %n" />
</layout>
</appender>
每个小时,ActiveFileName都可以正常运行,但是仅包含与新小时匹配的少量数据。
例如: 在06:59,ActiveFileName dpm-web-controllerCalls.log包含从06:01到06:59写入的日志记录
在07:00 dpm-web-controllerCalls.log滚动到dpm-web-controllerCalls.2018121706.gz并清除了ActiveFileName dpm-web-controllerCalls.log
问题:文件dpm-web-controllerCalls.2018121706.gz仅包含一些写于07:00的日志记录
我的名字是GNU / Linux
春季申请
LOG4j jar 1.2.17
我也尝试在不使用HH的情况下使用此FileNamePattern配置:
<param name="FileNamePattern" value="${catalina.base}/logs/dpm-web-controllerCalls.%d{yyyyMMdd}.gz" />
但是问题再次出现是因为在20181217午夜,滚动的dpm-web-controllerCalls.20181217.gz文件仅包含与新日期匹配的记录,直到2018-12-18 00:00:46