You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

配置说明

  • 滚动触发逻辑:当两个条件满足任意一个时,就会触发日志滚动:
    1. 当前主日志文件application.log的大小达到你设置的max-file-size(比如10MB)
    2. 系统日期切换到新的一天
  • 归档效果:滚动后,当天的日志会被重命名为application.log.2024-05-20这样带日期的文件,同时新建一个空的application.log继续写入新日志
  • 自动清理max-historytotal-size-cap会帮你自动清理旧日志,避免磁盘被占满

版本注意

这些logging.logback.rollingpolicy.*属性是Spring Boot 2.1及以上版本支持的,如果你使用的是更早的版本,建议升级到较新的Spring Boot版本(现在大部分生产环境都是2.x或3.x版本了)。

内容的提问来源于stack exchange,提问作者Alessandro Argentieri

火山引擎 最新活动