【问题标题】:Is there any triggering policy like SizeAndTimeBasedTriggeringPolicy with FixedWindowRollingPolicy in logback.xml?logback.xml 中是否有任何触发策略,如 SizeAndTimeBasedTriggeringPolicy 和 FixedWindowRollingPolicy?
【发布时间】:2023-03-27 16:23:01
【问题描述】:

在我的 spring boot 项目中,我使用的是 spring logback.xml。我有一个用例,我必须根据文件大小和日期来滚动文件,以先到者为准,而且我需要将滚动文件的计数保持为 2。我正在考虑使用以下内容:

<configuration>
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>test.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
   <fileNamePattern>test.%i.log.zip</fileNamePattern>
   <maxIndex>2</maxIndex>
  </rollingPolicy>

  <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
   <maxFileSize>5MB</maxFileSize>
  </triggeringPolicy>
  <encoder>
   <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
  </encoder>
 </appender>

<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>

但是上面的配置实现了基于文件大小滚动文件的用例滚动文件,并保持滚动文件的最大计数为2。但它不做基于日期的滚动。除了文件大小之外,我还需要基于日期的滚动,同时将滚动文件的数量保持为 2。有什么方法可以实现吗?

【问题讨论】:

    标签: java log4j logback slf4j spring-logback


    【解决方案1】:

    我认为下面应该可以工作。 TimeBasedRollingPolicy 使用您为 fileNamePattern 提供的模式来决定是将数据附加到现有文件还是新文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/logs/${appName}/${HOSTNAME}.log</file>
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- Rollover every day -->
                <fileNamePattern>/logs/${appName}/${HOSTNAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <maxHistory>2</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>5MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
        </appender>
        <root level="info">
            <appender-ref ref="FILE" />
        </root>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 2023-01-15
      • 1970-01-01
      • 2020-03-29
      • 2012-08-25
      • 2012-04-13
      • 2021-03-04
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多