2017-01-24 6 views
1

Я пытался архивировать файл журналов приложений, который старше определенного периода. Заметил, что, поскольку log4j 2.5 имеет тег Delete, давайте определим критерии, на основании которых мы можем удалять/архивировать наши журналы. Пробовал использовать это, но я как-то не в состоянии взломать его. Пробовал с 30day 30d значением, и это не работает на моем сервере, и ни одна из них не является 20-секундной политикой PT20S, работающей в моей машине Dev.Архивирование файла журнала с помощью log4j2 2.5

Любое направление приветствуется.

XML, как показано ниже:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{yyyyMMdd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
    </Console> 
    <RollingFile name="RollingFile" fileName="C://logs///test.log" filePattern="C://logs//test-%d{MM-dd-yyyy}.log.gz" ignoreExceptions="false"> 
     <PatternLayout pattern="%d{yyyyMMdd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
     <TimeBasedTriggeringPolicy /> 
     <DefaultRolloverStrategy> 
     <Delete basePath="C://logs//" maxDepth="2"> 
      <IfFileName glob="*/test-*.log.gz" /> 
      <IfLastModified age="PT20S" /> 
     </Delete> 
     </DefaultRolloverStrategy> 
    </RollingFile> 
    </Appenders> 
    <Loggers> 
    <Root level="INFO"> 
     <AppenderRef ref="Console" /> 
     <AppenderRef ref="RollingFile" /> 
    </Root> 
    </Loggers> 
</Configuration> 
+1

Вы можете выполнить отладку, установив '' в начале файла конфигурации. –

ответ

1

Если вы с помощью Windows файл и FilePattern из Appender RollingFile можно использовать одинарные слеши. Двойные косые черты могут смутить его.

Вы можете отладить настройку <Configuration status="trace"> в начале файла конфигурации.


Update:

В переваливают файлы попадают в C: каталог/журналы (filePattern="C://logs//test-%d{MM-dd-yyyy}.log.gz").

Однако действие «Удалить» настроено только на файлы, заканчивающиеся на «log.gz», которые находятся в подкаталогах : из c:/logs. Файлы в каталоге c:/logs не соответствуют glob="*/test-*.log.gz".

Чтобы исправить это, используйте glob="test-*.log.gz". В комментариях упоминалось, что изменение glob-regex также разрешило проблему.

+0

Целевая машина будет сервером Unix. Попытка выяснить проблему в моей машине Win Dev. Позвольте мне попробовать настройки отладки. Есть ли что-нибудь еще в конфиге, которая кажется вам очевидной? – Vikas

+0

Возможно, я что-то нашел. Обновлен мой ответ. –

+0

Это действительно проблема. изменение glob в regex в ноге в журнале. Извините за задержку в ответе. Кроме того, можете ли вы обновить свой комментарий в качестве ответа, а также с изменением glob/regex, чтобы я мог принять это? – Vikas