Конфигурации log4j с ежедневной прокруткой, gzip и максимальными файлами резервных копий

Есть ли приложение, которое я могу использовать, чтобы получать ежедневную прокрутку, сжатие и максимальное количество файлов?

Я могу получить ежедневный прокручивающийся файл со сжатием, используя apache-log4j-extras с этой конфигурацией:

<appender name="debugFileRolling" class="org.apache.log4j.rolling.RollingFileAppender">
    <!-- The active file to log to -->
    <param name="file" value="debug.log" />
    <param name="append" value="true" />
    <param name="encoding" value="UTF-8" />
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" value="/%d{yyyy-MM-dd}-debug.log.gz" />
    </rollingPolicy>

    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d [%t] %c: %m%n" />
    </layout>
</appender>

Но я не могу указать MaxBackupIndex как в org.apache.log4j.RollingFileAppender (обратите внимание на небольшую разницу в пространстве имен между ними).

Я хотел бы оба без необходимости реализовывать свои собственные FileAppender, TriggeringPolicy или RollingPolicy.


person Udy    schedule 27.10.2013    source источник


Ответы (1)


log4j 1.2 не имеет приложения, поддерживающего все необходимые вам функции. Вы должны использовать свою собственную реализацию.

log4j2 кажется, поддерживает ваши требования. Ознакомьтесь с документацией log4j2:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log"
       filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
      </Policies>
      <DefaultRolloverStrategy max="20"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>
person Uli    schedule 15.12.2014