Политика архивации ротации журналов облачного стека Apache log4j

Я пытаюсь ограничить количество журналов, которые хранятся в моем облачном стеке сервер управления. Я использую log4j 1.2 и недавно добавил " " в свою конфигурацию (/etc/cloudstack/management/log4j-cloud.xml ), чтобы сохранить только 31 журнал:

<appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender">
      <param name="Append" value="true"/>
      <param name="Threshold" value="TRACE"/>
      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" value="/var/log/cloudstack/management/management-server.log.%d{yyyy-MM-dd}.gz"/>
        <param name="ActiveFileName" value="/var/log/cloudstack/management/management-server.log"/>
        <param name="MaxBackupIndex" value="31"/>
      </rollingPolicy>
      <layout class="org.apache.log4j.EnhancedPatternLayout">
         <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1.}] (%t:%x) (logid:%X{logcontextid}) %m%n"/>
      </layout>
   </appender>

Однако все журналы все еще там, и у меня закончились идеи. Log4j не применяет свою политику архивирования к более старым журналам? Что еще мне нужно изменить? Мы будем благодарны за любые предложения.

1
задан 30 March 2017 в 15:21
1 ответ

Для начала нет' Rolling 'в log4j 1.2 (который, я знаю, вы используете;)). Ссылка на класс в пакете, который не существует, может привести к 'исключениям ClassNotFound', потому что класс, который он ищет, не находится там, где вы говорите, что он должен быть.

Также я бы переместил MaxBackupIndex из #rollingPolicy и добавил MaxFileSize параметр вроде так.

<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
      <param name="Append" value="true"/>
      <param name="Threshold" value="TRACE"/>
      <param name="MaxBackupIndex" value="31"/>
      <param name="MaxFileSize" value="x" />

Редактировать:

скользящий пакет можно найти в Apache Extras для log4j: https://logging.apache.org/log4j/extras/ Это дополнительный файл jar, содержащий дополнительные функции.Стандартный API не имеет скользящего пакета.

1
ответ дан 3 December 2019 в 23:32

Теги

Похожие вопросы