springboot3配置日志logback

打印 上一主题 下一主题

主题 1791|帖子 1791|积分 5373

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
当前springboot版本为3.3.4之后版本  与之前版本配置差别
1.引入依靠

  1. <dependency>
  2.             <groupId>org.springframework.boot</groupId>
  3.             <artifactId>spring-boot-starter-logging</artifactId>
  4.             <version>3.3.4</version>
  5.         </dependency>
复制代码
2.配置文件

application.yml
  1. logging:
  2.   file:
  3.     name: spring_log.log
  4.     path: ./logs
  5.   config: classpath:logback-spring.xml
复制代码
src/main/resources下logback-spring.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <!-- SpringBoot默认logback的配置 -->
  4.     <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
  5.     <springProperty scope="context" name="logName" source="logging.file.name"/>
  6.     <springProperty scope="context" name="logPath" source="logging.file.path"/>
  7. <!--    <property name="LOG_HOME" value="/logs/${logName}"/>-->
  8.     <!-- 1. 输出到控制台 -->
  9.     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  10.         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  11.             <level>DEBUG</level>
  12.         </filter>
  13.         <encoder>
  14.             <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
  15.             <charset>UTF-8</charset>
  16.         </encoder>
  17.     </appender>
  18.     <!-- 2. 输出到文件 -->
  19.     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  20.         <file>${logPath}/${logName}</file>
  21.         <encoder>
  22.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} -%5level ---[%15.15thread] %-40.40logger{39} : %msg%n%n</pattern>
  23.             <charset>UTF-8</charset>
  24.         </encoder>
  25.         <!-- 使用SizeAndTimeBasedRollingPolicy替代旧的策略 -->
  26.         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  27.             <!-- 滚动后的日志文件命名模式 -->
  28.             <fileNamePattern>${logPath}/%d{yyyy-MM-dd}-%i.log</fileNamePattern>
  29.             <!-- 日志文件的最大大小 -->
  30.             <maxFileSize>10MB</maxFileSize>
  31.             <!-- 最大保留30天的日志 -->
  32.             <maxHistory>30</maxHistory>
  33.             <!-- 总日志文件大小不超过3GB -->
  34.             <totalSizeCap>3GB</totalSizeCap>
  35.         </rollingPolicy>
  36.             <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  37.                 <level>INFO</level>
  38.             </filter>
  39.     </appender>
  40. <!--    &lt;!&ndash; 开发环境输出至控制台 &ndash;&gt;-->
  41. <!--    <springProfile name="dev">-->
  42. <!--        <root level="INFO">-->
  43. <!--            <appender-ref ref="CONSOLE"/>-->
  44. <!--            <appender-ref ref="FILE"/>-->
  45. <!--        </root>-->
  46. <!--    </springProfile>-->
  47.     <root level="INFO">
  48.         <appender-ref ref="CONSOLE"/>
  49.         <appender-ref ref="FILE"/>
  50.     </root>
  51. <!--    &lt;!&ndash; 生产环境输出至文件 &ndash;&gt;-->
  52. <!--    <springProfile name="prod">-->
  53. <!--        <root level="INFO">-->
  54. <!--            <appender-ref ref="CONSOLE"/>-->
  55. <!--            <appender-ref ref="FILE"/>-->
  56. <!--        </root>-->
  57. <!--    </springProfile>-->
  58. </configuration>
复制代码
修改内容阐明:

利用 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 并去除不兼容的文件命名模式,可以顺遂解决这些问题,使日志体系恢复正常运行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表