2016-08-16 3 views
1

Как сжать только старые свернутые файлы и не каждый раз, когда он рулон? (теперь это каждый день). Следующая конфигурация выполняется только ежедневно и удаляет сжатый файл через 60 дней, но сжимается каждый день.Log4j2 - Сжатие старых файлов опрокидывания, сохранить последний файл X несжатым

Я не хочу, чтобы использовать инструмент для распаковки файла последнего [X] дней, если я должен исследовать в них ...

<RollingRandomAccessFile name="file" fileName="${baseDir}/app-trace.log" 
       filePattern="${baseDir}/app-trace-%d{yyyy-MM-dd}.log.gz" 
       immediateFlush="false" append="true"> 
    <PatternLayout pattern="%d %-5p [%t] %c - %m%n"/> 
    <Policies> 
     <TimeBasedTriggeringPolicy/> 
    </Policies> 
    <DefaultRolloverStrategy max="91"> 
     <Delete basePath="${baseDir}" maxDepth="2"> 
      <IfFileName glob="*/app-trace*.log.gz"> 
       <IfLastModified age="60d"> 
        <IfAny> 
         <IfAccumulatedFileSize exceeds="1 GB"/> 
         <IfAccumulatedFileCount exceeds="10"/> 
        </IfAny> 
       </IfLastModified> 
      </IfFileName> 
     </Delete> 
    </DefaultRolloverStrategy> 
</RollingRandomAccessFile> 

ответ

0

У меня была аналогичная проблема, и я закончил выполняя мою собственную реализацию DeleteAction и присоединяя его к DefaultRolloverStrategy, так что перед тем, как удалить его, он все застегнет. Вы можете найти исходный код по адресу:

https://github.com/lqbweb/log4j2-ZipDelete

+0

Здравствуйте @lqbweb. Я пытаюсь использовать ваш ZipDeleteAction, но я не понимаю, как установить параметр zipPattern в отношении filePattern в RolloingFileApender. Должен ли параметр filePattern быть отрегулирован (например, исключить% i или% d), чтобы имена файлов соответствовали тому, что ZipDeleteAction принимает как вход? Примером всего раздела конфигурации было бы очень полезно. – Maciej