log4j - ротация логов не очищает логи ротатора - PullRequest
0 голосов
/ 31 января 2020

Я использую log4j 1.x (с slf4j). Ротация журналов - это рабочий файл, но он не очищает повернутые журналы.

Это содержимое log4. xml -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

<appender name="app1" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="${catalina.home}/logs_folder/webint.log"/>
    <param name="Append" value="true"/>
    <param name="MaxBackupIndex" value="24"/>
    <param name="immediateFlush" value="true"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
    <param name="ConversionPattern" value="%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n" />
  </appender>

  <root>
      <level value="INFO" />
      <appender-ref ref="app1"/>
   </root>

</log4j:configuration>

Почему-то вместо 24 файлов генерируется более 300 файлов. Размер каждого файла журнала варьируется от 150 МБ до 350 МБ, и он вращается каждый час.

В пом. xml,

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.12.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>

Дерево зависимостей:

\- org.slf4j:slf4j-log4j12:jar:1.7.25:compile
    \- log4j:log4j:jar:1.2.16:compile (version managed from 1.2.17)

Мне нужно понять -

  1. Почему генерируется более 24 файлов, когда MaxBackupIndex упоминается как 24?
  2. Поскольку я не указал MaximumFileSize, не должен ли он быть по умолчанию 10 МБ?

1 Ответ

0 голосов
/ 31 января 2020

Вместо DailyRollingFileAppender используйте RollingFileAppender. Поскольку максимальный файл резервной копии не работает с DailyRollingFileAppender

Если вы хотите выполнять ежедневную прокатку с максимальным индексом резервного копирования, вы можете выполнить шаги, указанные в https://www.codeproject.com/Articles/81462/DailyRollingFileAppender-with-maxBackupIndex

Я надеюсь, что это помогает Cheers

...