Log4j2-将存档添加到当前配置

问题描述

我想在日志文件添加自动存档(删除),但是我努力寻找一个我理解并可以添加到当前配置的xml示例。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
  <Appenders>
    <Console name="Console" target="SYstem_OUT">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
    </Console>
    <RollingFile name="RollingFile" fileName="./logs/AutoLab.log" 
   filePattern="./logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy/>
        <SizeBasedTriggeringPolicy size="100 MB"/>
      </Policies>
       <DefaultRolloverStrategy max="50"/>
</RollingFile>
  </Appenders>
  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

以上是我当前的配置。从我阅读的内容中,我必须注意路径和目录名称,以便为操作系统使用正确的正斜杠字符。不确定我的安装程序将如何处理该问题。

有关自动存档的任何帮助-删除语法非常感谢。

戴夫

解决方法

您当前的配置表明您希望文件每月或在文件大小为100MB时翻转一次。您希望每月最多保留50个文件。

有关示例,请参见How to delete old logs with log4j2

,
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
    </Console>
    <RollingFile name="RollingFile" fileName="./logs/AutoLab.log" filePattern="./logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
      <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
      <DefaultRolloverStrategy>
        <Delete basePath="${baseDir}" maxDepth="2">
          <IfFileName glob="*/app-*.log.gz" />
          <IfLastModified age="14d" />
        </Delete>
      </DefaultRolloverStrategy>
      <Policies>
        <TimeBasedTriggeringPolicy/>
        <SizeBasedTriggeringPolicy size="50 MB"/>
      </Policies>
       <DefaultRolloverStrategy max="10"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

添加了添加部分,以删除14天以上的文件。