Я использую log4j2 2.11
для создания файлов журнала.У меня эти файлы журналов повернуты в зависимости от времени и размера.Вращение, основанное на времени, прекрасно работает, однако у меня возникает странная проблема, когда я вращаюсь в зависимости от размера.
Когда я вращаюсь в зависимости от размера, я сжимаю файл журнала в следующий именованный файл gzip ${logdir}/${eventfilename}-%d{yyyyMMddHHmmss}{GMT+0}.log.gz
, однако, файл log.gz
продолжает заканчиваться в одно и то же время и, таким образом, бесконечно перезаписывает предыдущий заархивированный файл журнала.Насколько я понимаю, что текущее время будет использоваться для файла gzip, а не в первый раз, когда его создают для создания файла gzip.
Что может быть причиной этой проблемы, когда мой повернутый файл, основанный на размере, продолжает заканчиватьсято же имя и не обновляется до текущего времени, которое будет использоваться в имени файла?
На заметку вот мой полный файл конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ALL" shutdownHook="disable">
<Properties>
<Property name="logdir">${env:DIR}/log</Property>
<Property name="eventfilename">foo_event</Property>
<Property name="errorfilename">foo_error</Property>
<Property name="msgformat">%d{yyyy-MM-dd HH:mm:ss.SSS}{GMT+0}Z [%t] %-5level %logger{1} - %msg%n</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${msgformat}"/>
</Console>
<RollingFile name="ERROR_FILE" fileName="${logdir}/${errorfilename}.log"
filePattern="${logdir}/${errorfilename}-%d{yyyyMMddHHmmss}{GMT+0}.log.gz">
<PatternLayout charset="UTF-8" pattern="${msgformat}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${logdir}">
<IfFileName glob="${errorfilename}-*">
<IfAccumulatedFileSize exceeds="100 MB"/>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
<ThresholdFilter level="WARN"/>
</RollingFile>
<RollingFile name="EVENT_FILE" fileName="${logdir}/${eventfilename}.log"
filePattern="${logdir}/${eventfilename}-%d{yyyyMMddHHmmss}{GMT+0}.log.gz">
<PatternLayout charset="UTF-8" pattern="${msgformat}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="43200" modulate="false"/>
<SizeBasedTriggeringPolicy size="1 MB"/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${logdir}">
<IfFileName glob="${eventfilename}-*">
<IfAccumulatedFileSize exceeds="100 MB"/>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
<ThresholdFilter level="TRACE"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="foo.utils.FooLogger" level="TRACE"
additivity="false">
<AppenderRef ref="ERROR_FILE"/>
<AppenderRef ref="EVENT_FILE"/>
</Logger>
<Logger name="foo.utils.foo.FooPathUtils" level="INFO"
additivity="false">
<!-- Change level to debug to log java path info at startup -->
<AppenderRef ref="ERROR_FILE"/>
<AppenderRef ref="EVENT_FILE"/>
</Logger>
<Logger name="foo" level="INFO" additivity="false">
<AppenderRef ref="ERROR_FILE"/>
<AppenderRef ref="EVENT_FILE"/>
</Logger>
<Root level="TRACE">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>