У меня проблемы с настройкой DefaultRolloverStrategy для log4j2.xml для выполнения следующих действий: -
Убедитесь, что сохранены ТОЛЬКО последние 4 файла журнала, а старые должны быть удалены.
Итак, будьте ясны, последние 4 файла журнала могут быть за несколько дней или в один и тот же день, поэтому
последние 4 файла журнала могут иметь одну и ту же дату или охватывать разные даты.
Ниже приведено содержимое log4j2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
<Appenders>
<!-- Console Appender -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{DEFAULT} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!-- Rolling File Appender -->
<RollingFile name="File" fileName="app_log.log"
filePattern="app_log-%d{yyyy-MM-dd}.%i.log">
<PatternLayout pattern="%d{DEFAULT} [%t] %-5level %logger{36} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="2 KB" />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="" maxDepth="1">
<IfFileName glob="app_log*.txt">
<IfAny>
<IfAccumulatedFileSize exceeds="5 KB" />
<IfAccumulatedFileCount exceeds="4" />
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.app.utilities" level="info" additivity="true">
<AppenderRef ref="File" />
</Logger>
<Root level="debug">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
Я запускаю свое приложение, как показано ниже
java -Dlog4j.configurationFile=./app-log4j2.xml -jar application.jar
Журнал генерируется в том же каталоге, откуда вызывается вышеуказанная команда.
Ниже приведен пример истории файлов журнала: -
File Name Date Modified
app_log.log 8/27/2018 2:25 PM
app_log-2018-08-27.2.log 8/27/2018 2:25 PM
app_log-2018-08-27.1.log 8/27/2018 2:11 PM
app_log-2018-08-26.5.log 8/26/2018 2:01 PM
app_log-2018-08-26.4.log 8/26/2018 2:00 PM
app_log-2018-08-26.3.log 8/26/2018 1:58 PM
app_log-2018-08-26.2.log 8/26/2018 1:57 PM
app_log-2018-08-26.1.log 8/26/2018 1:56 PM
Кажется, что "DefaultRolloverStrategy" не имеет никакого эффекта.
Я предполагаю, что моя конфигурация неверна. Тем не менее, я был бы очень признателен за предложения
чтобы исправить это, пожалуйста.
Кроме того, если требование изменилось так, что файлы журналов, превышающие 20 дней, должны быть удалены.
Как это могло быть достигнуто.
Заранее большое спасибо за помощь
Пит