Spring Boot 默认使用 Logback,日志级别(TRACE/DEBUG/INFO/WARN/ERROR)和格式可通过 application.yml 或 application.properties 快速配置:设 logging.level.root 控制全局,logging.level.com.example.controller 单独定制包级别;用 logging.pattern.console/file 自定义输出格式,支持颜色、时间、线程等占位符;文件输出需显式配置 logging.file.name 或 logging.file.path,滚动归档等高级功能需 logback-spring.xml。

Spring Boot 默认用 Logback,日志格式和级别都能通过配置文件快速调整,不用写代码。关键在 application.yml 或 application.properties 里设置,开发调试和生产上线都够用。
日志级别怎么设
日志级别决定哪些消息会被记录:TRACE(最细)→ DEBUG → INFO(默认)→ WARN → ERROR(最粗)。级别设得越低,输出越多,也越影响性能。
-
全局控制:设
root级别,影响所有日志,比如开发时设为DEBUG,生产建议用WARN -
按包/类定制:对框架(如
org.springframework)或业务模块(如com.example.service)单独调低或调高,避免干扰 -
YAML 示例:
logging: level: root: warn com.example.controller: debug org.springframework.web: info
日志格式怎么调
默认格式已包含时间、线程、级别、类名和消息,但可自定义字段顺序、精度、颜色甚至 PID,提升可读性与排查效率。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
控制台和文件可分别配置:
logging.pattern.console和logging.pattern.file互不影响 -
常用占位符:
%d{yyyy-MM-dd HH:mm:ss.SSS}(带毫秒时间)、%thread(线程名)、%-5level(左对齐级别)、%logger{36}(截断包名长度)、%msg%n(日志内容+换行) -
带颜色的控制台示例(YAML):
logging: pattern: console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} [%15.15t] %clr(%-40.40logger{39}){cyan} : %m%n"
日志输出到文件怎么做
默认只打到控制台,要存文件必须显式配置路径或文件名,且二者不能同时用。
-
只配目录:
logging.file.path=logs→ 自动创建spring.log -
只配文件:
logging.file.name=logs/app.log→ 指定完整路径和名字 -
加大小限制(需配合 Logback XML):纯配置文件不支持滚动切割;如需按天/按大小归档,得用
logback-spring.xml定义RollingFileAppender
什么时候该用 XML 配置
当需要更精细控制时,比如:
- 把 ERROR 日志单独写进
error.log,INFO 写进info.log - 按日期(
app.%d{yyyy-MM-dd}.%i.log)或文件大小(10MB 后切新文件)自动滚动 - 过滤特定级别、添加异步输出提升性能
- 注意:用了
logback-spring.xml,就要删掉application.yml中重复的logging.*配置,否则可能冲突

















