Spring boot - 限制为7的备份日志文件数

时间:2016-09-21 07:49:31

标签: java spring spring-boot logback slf4j

在我们的 spring-boot 项目中,我们使用 slf4j 进行日志记录。以下是我们在 application.properties 文件

中添加的配置
logging.file=/opt/logs/my_log.log
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.level.nl.yestelecom.boss=DEBUG
logging.level.com.github.isrsal.logging.LoggingFilter=DEBUG

只生成7个备份文件(my_log.log.1,my_log.log.2 ...,my_log.log.7),每个文件的大小 10.5MB 并且之后根本没有发生日志记录。

有没有办法改变这种行为?

我们研究了弹簧靴的可用属性,但是没有找到任何东西。任何建议都表示赞赏。

3 个答案:

答案 0 :(得分:21)

Spring-Boot 仅允许在其application.properties中配置有限属性。请参阅list here

Spring-boot使用的默认(开箱即用)配置在base.xml中定义。请参阅base.xml config here,其中包含this File appender

有两种方法可以添加额外的配置

  1. 添加logback-spring.xml
  2. 如果在项目的类路径中有一个名为logback-spring.xml的logback配置XML,则Spring-Boot会在初始化时获取它。

    1. 指向application.properties
    2. 中的配置文件

      在application.properties中,使用以下内容指向自定​​义logback XML

      logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback
      

      使用上述两个步骤中的任何一个添加额外配置后,可以在该自定义XML中提及翻转策略

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration scan="true">
          <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
              <encoder>
                  <charset>UTF-8</charset>
                  <Pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n</Pattern>
              </encoder>
          </appender>
          <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
              <encoder>
                  <pattern>${FILE_LOG_PATTERN}</pattern>
              </encoder>
              <file>${LOG_FILE}</file>
              <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                  <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
                  <minIndex>1</minIndex>
                  <maxIndex>10</maxIndex>
              </rollingPolicy>
              <triggeringPolicy
              class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                  <MaxFileSize>10MB</MaxFileSize>
              </triggeringPolicy>
          </appender>
      
          <root level="DEBUG">
              <appender-ref ref="CONSOLE" />
              <appender-ref ref="FILE"/>
          </root>
      </configuration>
      

答案 1 :(得分:7)

SFL4J只是包装。您需要为logback库添加额外配置:

x'FFFFFFFF'::bigint

source

在这种情况下,我们有过去30天但不超过3GB的日志。

答案 2 :(得分:3)

for spring-boot 2.0.0:

  • logging.file.max历史
  • logging.file.max尺寸

......和其他人 看看org.springframework.boot.logging.LoggingSystemProperties或者 https://docs.spring.io/spring-boot/docs/2.0.5.RELEASE/reference/html/boot-features-logging.html#boot-features-logging-file-output