Spring Boot项目中logback.xml与logback-test.xml哪个优先级更高?
Logback配置文件加载优先级详解
嘿,作为Spring Boot和Logback的新手,你的疑问特别典型,我来给你讲明白两种场景下的加载逻辑:
1. 测试/开发阶段(运行单元测试、测试类)
Logback的加载规则确实如你查到的:优先查找logback-test.xml,找不到才会加载logback.xml。
- 你的
logback-test.xml放在src/test/resources下,这个目录的资源会被加入测试代码的类路径中 - 当你运行单元测试、集成测试或者用IDE启动测试环境时,Logback会先找到
logback-test.xml并加载,此时src/main/resources下的logback.xml会被忽略 - 这个设计很合理,因为测试场景通常需要更详细的日志输出或者不同的日志策略,和生产环境区分开
2. 部署应用(生产/正式运行)
这时候你完全不用担心logback-test.xml的优先级问题,因为:
- Maven、Gradle这类构建工具在打包生产应用包(jar/war)时,只会将
src/main/resources下的资源文件打包进去,src/test/resources目录下的所有文件都会被排除在外 - 部署后的应用类路径里根本没有
logback-test.xml,Logback只能找到src/main/resources下的logback.xml并加载
简单总结一下:
- 测试场景:
logback-test.xml优先生效 - 生产部署场景:只有
logback.xml会被加载,不存在优先级冲突
内容的提问来源于stack exchange,提问作者Saurabh Deshpande
相关产品推荐
相关产品推荐

