最推荐使用logback实现日志文件输出与滚动,支持按时间(如每天)和大小(如10mb)双策略滚动归档,保留30天,配置简洁、性能好、功能全。

Java 中日志输出到文件并支持滚动,最常用、最推荐的方式是使用 Logback(SLF4J 的原生实现),它配置简洁、性能好、功能全。下面以 Logback 为例,说明如何配置日志写入文件并按大小或时间滚动。
1. 添加依赖(Maven)
确保项目中引入了 Logback(无需额外引 SLF4J API,Spring Boot 项目通常已内置):
2. 配置 logback-spring.xml(推荐放于 src/main/resources/)
以下是一个典型配置:按天归档 + 单日文件大小限制 + 最多保留 30 天:
关键点说明:
- TimeBasedRollingPolicy:按日期滚动(如 app.2024-06-01.log)
-
SizeAndTimeBasedFNATP:当日志超过
maxFileSize(如 10MB)时,自动切分并加序号(如 app.2024-06-01.0.log、app.2024-06-01.1.log) - maxHistory=30:只保留最近 30 天的归档目录(含所有 .i.log 文件)
- 日志路径
logs/会自动创建,无需手动建目录
3. 按文件大小单独滚动(不按天)
若只需按大小滚动(比如单个文件最大 100MB,最多存 10 个):
4. 注意事项与调试技巧
-
配置文件名必须是
logback.xml或logback-spring.xml(后者支持 Spring Boot 的 profile 功能) - 修改配置后需重启应用才能生效(Logback 不热加载 XML)
- 如果日志没生成,检查
logs/目录是否有写权限,或查看控制台是否报RollingFileAppender error - 可在 application.yml 中设置
logging.config=classpath:logback-spring.xml显式指定路径 - 用
%i表示滚动索引,%d{...}表示日期,二者可共存(如上面的时间+大小组合)
Logback 的滚动策略灵活,日常推荐用「时间 + 大小」双触发,兼顾可读性与磁盘安全。不复杂但容易忽略细节,配对即可稳定运行。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











