springboot3配置日志logback

当前springboot版本为3.3.4之后版本  与之前版本配置不同

1.引入依赖


            org.springframework.boot
            spring-boot-starter-logging
            3.3.4
        

2.配置文件

application.yml

logging:
  file:
    name: spring_log.log
    path: ./logs
  config: classpath:logback-spring.xml

src/main/resources下logback-spring.xml




    
    

    
    


    
    
        
            DEBUG
        
        
            ${CONSOLE_LOG_PATTERN}
            UTF-8
        
    

    
    
        ${logPath}/${logName}
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} -%5level ---[%15.15thread] %-40.40logger{39} : %msg%n%n
            UTF-8
        
        
        
            
            ${logPath}/%d{yyyy-MM-dd}-%i.log
            
            10MB
            
            30
            
            3GB
        
            
                INFO
            
    








    
        
        
    









修改内容说明:

使用 SizeAndTimeBasedRollingPolicy:   

        该策略同时支持按时间和文件大小滚动日志。与旧的 TimeBasedRollingPolicy 类相比,它是更推荐的滚动策略。

文件命名模式调整:        

        在 fileNamePattern 中,使用 %d{yyyy-MM-dd}-%i.log 作为文件名格式,这允许日志按照日期命名,并在同一天滚动日志时通过 %i 生成分片文件(如 2024-10-01-1.log, 2024-10-01-2.log 等)。

限制日志大小和保留时间

        maxFileSize 设置为 10MB,表示单个日志文件的最大大小。
        maxHistory 设置为 30,表示最多保留30天的日志文件。
        totalSizeCap 设置为 3GB,表示日志总大小不能超过 3GB。达到该限制时,将删除最早的日志文件。
总结
在 Spring Boot 升级至 3.3.4 后,由于底层 Logback 版本的更新,原先使用的 TimeBasedRollingPolicy 类和日志文件名中的 %i 令牌会引发兼容性问题。通过调整日志回滚策略,使用新的 SizeAndTimeBasedRollingPolicy 并去除不兼容的文件命名模式,可以顺利解决这些问题,使日志系统恢复正常运行。

你可能感兴趣的:(logback,java,spring,boot)