Spring Boot日志配置:如何在application.properties实现按日切分与大小限制
Spring Boot 日志滚动配置(仅application.properties)
没问题!完全可以只通过application.properties来实现你的需求——Spring Boot默认集成的Logback日志框架,支持直接通过配置属性实现「单个日志文件大小限制+按日期生成独立归档文件」的效果,不需要额外编写XML或JSON配置文件。
完整配置示例
直接在你现有的配置基础上添加滚动策略相关属性即可,以下是适配你的需求的完整配置:
# 基础日志格式配置(保留你原来的设置) logging.pattern.file= %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n # 指定主日志文件路径(Spring Boot 2.2+推荐使用logging.file.name,旧版本可沿用logging.file) logging.file.name=/Users/alessandroargentieri/Desktop/try/application.log # 日志滚动核心配置(按日期+按大小触发) # 归档日志的文件名格式:主文件名+日期,例如application.log.2024-05-20 logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd} # 单个日志文件的最大容量,达到该大小就触发滚动归档 logging.logback.rollingpolicy.max-file-size=10MB # 归档日志的保留天数,超过该天数的旧日志会自动清理 logging.logback.rollingpolicy.max-history=30 # 可选:所有归档日志的总大小上限,超过后自动删除最早的归档文件 logging.logback.rollingpolicy.total-size-cap=1GB # 可选:启动应用时自动清理过期的归档日志 logging.logback.rollingpolicy.clean-history-on-start=true
配置说明
- 滚动触发逻辑:当两个条件满足任意一个时,就会触发日志滚动:
- 当前主日志文件
application.log的大小达到你设置的max-file-size(比如10MB) - 系统日期切换到新的一天
- 当前主日志文件
- 归档效果:滚动后,当天的日志会被重命名为
application.log.2024-05-20这样带日期的文件,同时新建一个空的application.log继续写入新日志 - 自动清理:
max-history和total-size-cap会帮你自动清理旧日志,避免磁盘被占满
版本注意
这些logging.logback.rollingpolicy.*属性是Spring Boot 2.1及以上版本支持的,如果你使用的是更早的版本,建议升级到较新的Spring Boot版本(现在大部分生产环境都是2.x或3.x版本了)。
内容的提问来源于stack exchange,提问作者Alessandro Argentieri




