spring boot 3.0默认日志框架是logback,通过spring-boot-starter-logging隐式引入slf4j api、logback classic和core;支持application.yml配置日志级别与文件输出,或使用logback-spring.xml实现环境化、滚动归档等高级功能。

确认Spring Boot 3.0默认日志框架
Spring Boot 3.0项目启动后未显式引入日志依赖时,仍能输出INFO级别日志到控制台,这是因为底层已自动启用Logback作为实现引擎。
检查项目pom.xml中是否包含spring-boot-starter或spring-boot-starter-web——只要存在任一Starter,【spring-boot-starter-logging就会被隐式传递引入】,无需手动添加。
该Starter内部固定组装了SLF4J API + Logback Classic + Logback Core三者,构成完整日志链路。此时直接使用org.slf4j.Logger接口写日志即可生效。
通过application.yml动态调整日志级别
在src/main/resources/application.yml中添加如下配置:
logging: level: root: WARN com.example.myapp.service: DEBUG org.springframework.web.servlet.DispatcherServlet: TRACE
这会将根日志器设为WARN,同时让自定义业务包输出DEBUG日志、Spring MVC核心调度器输出TRACE级细节。
注意:配置中的包名必须与实际类路径完全一致,大小写敏感;若拼错包名,对应日志将不会按预期降级或升级。
启用日志文件输出并指定路径
方法一:仅用properties/yml配置(轻量级)
在application.yml中追加:
logging: file: name: logs/app.log
Spring Boot会自动创建logs/目录,并将INFO及以上日志同时写入控制台和该文件。此方式不支持滚动策略或多环境分离。
方法二:使用logback-spring.xml(生产推荐)
在src/main/resources/下新建logback-spring.xml,内容需以<configuration></configuration>开头,并包含<springprofile name="prod"></springprofile>区块。
【必须命名为logback-spring.xml而非logback.xml,否则无法识别springProfile标签】
该文件会在Spring Boot上下文初始化早期加载,比application.yml中logging.*配置优先级更高,可覆盖其设置。
按环境切换日志配置
第一步:在application.yml中激活profile
spring: profiles: active: prod
第二步:在logback-spring.xml中编写环境专属配置
例如,在<springprofile name="prod"></springprofile>内定义RollingFileAppender,设置最大保留30天日志、单个文件不超过100MB;而在<springprofile name="dev"></springprofile>内只启用ConsoleAppender并开启彩色输出。
这种写法让开发时看到高亮日志,上线后自动转为压缩归档+异步刷盘,无需改代码、不重启服务。
第三步:验证profile是否生效
启动应用后观察控制台首行输出,若出现Started Application in X seconds (JVM running for Y)前有Active profiles: prod字样,则说明profile已正确加载,logback-spring.xml中的对应区块正在运行。











