Dailyrollingfileappender не создает резервную копию более 1 дня - PullRequest
0 голосов
/ 04 мая 2018

Моя конфигурация журнала следующая, но я вижу только один файл резервной копии, который создается, а все остальные резервные копии просто удаляются / удаляются.

log4j.appender.application=org.apache.log4j.DailyRollingFileAppender
log4j.appender.application.File=${log.root.path}/test.log
log4j.appender.application.DatePattern='.'yyyy-MM-dd
log4j.appender.application.layout=org.apache.log4j.PatternLayout
log4j.appender.application.layout.ConversionPattern=%d{dd MMM 
HH\:mm\:ss\:SSS} [%t] %-5p [%c\:%M\:%L]  srcIp=%X{srcIp} - 
remoteHost=%X{remoteHost} -port=%X{port} - activityType=%X{activitytype} - 
activityStatus=%X{activitystatus} -applicationUser=%X{applicationUser} - 
APITXNID=%X{apiTxnId} -CustomerRefNum=%X{CustomerRefNum} -%m%n%n

1 Ответ

0 голосов
/ 05 мая 2018

Ваша конфигурация выглядит хорошо, есть несколько вещей, которые вы можете попробовать сделать:

  1. Попробуйте заменить log4j.appender.application.DatePattern с '.'yyyy-MM-dd на '.'yyyy-MM-dd-HH-mm и посмотрите, будут ли файлы создаваться каждую минуту. Если это работает, есть вероятность, что какой-то внешний скрипт очистки удаляет старые журналы.

  2. Добавьте -Dlog4jdebug.true к параметрам виртуальной машины, чтобы проверить, какой эффективный файл log4j conf используется.

  3. Также рассмотрите возможность использования Предупреждение документации API

    В DailyRollingFileAppender обнаружены проблемы с синхронизацией и потерей данных. Компонент log4j extras включает альтернативы, которые следует учитывать для новых развертываний и которые обсуждаются в документации для org.apache.log4j.rolling.RollingFileAppender.

Вы можете получить тот же эффект, что и в вашей конфигурации, заменив зависимость log4j на apache-log4j-extras , которая реализует log4j 1.2.x, но имеет дополнительные функции, такие как org.apache.log4j.rolling.RollingFileAppender на TimeBasedRollingPolicy

Затем замените на log4j.properties

log4j.appender.application=org.apache.log4j.DailyRollingFileAppender
log4j.appender.application.File=${log.root.path}/test.log
log4j.appender.application.DatePattern='.'yyyy-MM-dd

с

log4j.appender.application=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.application.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.application.rollingPolicy.FileNamePattern=${log.root.path}/test.log.%d{yyyy-MM-dd-HH-mm}
log4j.appender.application.File=${log.root.path}/test.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...