Ежедневно генерировать журналы в новом каталоге в соответствии с каждым часом в log4j2? - PullRequest
1 голос
/ 26 мая 2019

Я хочу создать каталог {date} .dir, и внутри этого каталога мне нужны журналы для каждого часа в новом отдельном файле: 0000.log, 0100.log ... 2300.log.

Я использовал прокручиваемый файл appender, но он работает только для создания одного файла журнала и сжатия последнего. Я использую основанную на времени политику запуска с интервалом = 1, которая дает мне новый файл каждый день и сжимает последний день.

<RollingFile name="eventLogger" fileName="/Log/webservices/linpub.log" filePattern="/Log/webservices/linpub-%d{MM-dd-yyyy}.log.gz">
        <PatternLayout>
                <Pattern>%d{MM/dd/yy HH:mm:ss.SSS} %-5p [%t] %c{1} %X{trioOperation} - %m %throwable %n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </Policies>
</RollingFile>

Я хочу создать новый файл с именем linpub- {date} .dir, и внутри файла должен быть файл журнала для каждого часа.

Я использую версию log4j2 2.3.

Ответы [ 2 ]

1 голос
/ 26 мая 2019

В случае <TimeBasedTriggeringPolicy interval="1" modulate="true"/>, здесь интервал = "1" означает 1 день, а не 1 час.Если вы хотите достичь 1 часа, вы должны использовать базовую политику CronTrigger.Найдите ниже код.

<CronTriggeringPolicy schedule="0 0 0/1 1/1 * ? *" evaluateOnStartup="true"/> 

Замените следующую строку на приведенную выше.

<TimeBasedTriggeringPolicy interval="1" modulate="true"/>

Также измените имя файла patten с помощью этого yyyy-MM-dd-HH, чтобы вы моглизнать для почасовых базовых.Пожалуйста, проверьте и проверьте это.

0 голосов
/ 27 мая 2019

Пожалуйста, используйте ниже конфигурации:

 <appender name="dailyFileAppender" 
      class="org.apache.log4j.rolling.RollingFileAppender">
      <param name="append" value="true" />
      <param name="Threshold" value="INFO" />
      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="/temp/logs/Project-Name_%d{yyyy-MM- 
      dd-HH}.log" />
      </rollingPolicy>
      <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p 
      %-10t [%-40.40c] %x - %m%n" />
      </layout>
  </appender>
...