Log4j2基于时间的滚动

时间:2016-05-13 02:03:03

标签: log4j2

以下是基于时间和大小的文件滚动追加器

<RollingFile name="fileWriter" fileName="${LOG_DIR}/file.log"
     filePattern="${ARCHIVE}/file_log.%d{yyyy-MM-dd}-%i.gz">
    <PatternLayout pattern="${PATTERN}"/>
    <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        <SizeBasedTriggeringPolicy size="100 MB" />
    </Policies>
</RollingFile>

为减少日志文件的数量,我想让它按时间滚动,以便30天前生成的文件会自动删除。

我可以DefaultRolloverStrategy帮忙吗?如果没有,有人会提供一些建议吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

是的,DefaultRolloverStrategy会做你想要的。您应该能够配置:

<DefaultRolloverStrategy max="30"/>

作为替代方案,您还可以指定删除操作,例如:

  <DefaultRolloverStrategy>
    <Delete basePath="${ARCHIVE}" maxDepth="2">
      <IfFileName glob="*/file_log-*.gz" />
      <IfLastModified age="30d" />
    </Delete>
  </DefaultRolloverStrategy>