У меня есть эта проблема, мой 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
Приложение Spring
LOG4j jar 1.2.17
Я также пытался использовать эту конфигурацию 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