2

我阅读了log4j2的官方文档,得到了一个关于RollingFileAppender的问题。

这就是文件所说的:

下面是一个示例配置,它使用基于时间和大小的触发策略的 RollingFileAppender,将在同一天(1-100)创建多达 100 个存档,这些存档存储在基于当前年份和月份的目录中,并将使用 gzip 压缩每个存档,并且每小时滚动一次。在每次翻转期间,此配置将删除匹配“ /app-.log.gz ”且 30 天或更早的文件,但保留最近的 100 GB 或最近的 10 个文件,以先到者为准。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Properties>
    <Property name="baseDir">logs</Property>
  </Properties>
  <Appenders>
    <RollingFile name="RollingFile" fileName="${baseDir}/app.log"
          filePattern="${baseDir}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
      <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
      </Policies>
      <DefaultRolloverStrategy max="100">
        <!--
        Nested conditions: the inner condition is only evaluated on files
        for which the outer conditions are true.
        -->
        <Delete basePath="${baseDir}" maxDepth="2">
          <IfFileName glob="*/app-*.log.gz">
            <IfLastModified age="30d">
              <IfAny>
                <IfAccumulatedFileSize exceeds="100 GB" />
                <IfAccumulatedFileCount exceeds="10" />
              </IfAny>
            </IfLastModified>
          </IfFileName>
        </Delete>
      </DefaultRolloverStrategy>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

我认为此配置将在一天的同一时间创建多达 100 个档案而不是在同一天创建 100 个档案,有人可以帮帮我吗?谢谢!

4

1 回答 1

0

是的,它在一小时内最多可以保存 100 个文件,但实际上它永远不会达到那么高,因为它总共最多只能保存 10 个文件。

于 2020-01-14T16:00:17.427 回答