как настроить временные журналы и политику их сжатия

#log4j2

#log4j2

Вопрос:

У меня есть требование записывать файлы журналов на основе часа.

Кроме текущего журнала, остальные журналы должны быть сжаты (gz), как показано ниже

-rw-r—r— 1 karthick karthick 58546 31 августа 19:00 console.20200831-19.log.gz

-rw-r—r— 1 karthick karthick 58546 31 августа 20:00 console.20200831-20.log.gz

-rw-r—r— 1 karthick karthick 58546 31 августа 21:00 консоль.20200831-21.log

Попробовал приведенный ниже фрагмент, но не сработал так, как ожидалось.

  <RollingRandomAccessFile
      name="myFile"
      fileName="console.%d{yyyyMMdd-HH}.log" 
      filePattern="console.%d{yyyyMMdd-HH}.log.gz"      
      append="true" immediateFlush="true">  
     <PatternLayout pattern="%d [%t] %-5p %c[1] %m%n">  
     <Policies>         
        <TimeBasedTriggerPolicy>    
     <Policies> 
</RollingRandomAccessFile>
  

Ответ №1:

В имени файла не должно быть %{d}, оно используется только для создания целевого файла при переносе. Вы могли бы оставить атрибут fileName выключенным, однако вы должны знать, что файл не будет сжат при завершении работы, и если время отличается при перезапуске, он также не будет сжат.