log4j TimeBasedRollingPolicy

时间:2018-12-17 17:08:19

标签: log4j

我的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

0 个答案:

没有答案