起因
今天在把一个老项目从 war 改成 jar,顺带按照架构部要求升级到 Spring Boot 2。按照他们给的文档,把 Logback 配置文件名称修改成了 logback-spring.xml
,之后再重启项目,看日志输出路径以及日志名称,怎么看怎么对不上。
logback-spring 配置文件中指定的日志名是 curriculum-gateway.log
和 curriculum-gateway-error.log
,左边 xx-monitor-service.log
又是什么鬼?
问题分析
首先就是全局搜索 monitor 关键字,只是在 pom 文件中发现了个 jar 包名称带 monitor,之后就发现 Spring Boot 用了这个 jar 包里的 logback.xml 配置文件。之前留意过 Spring Boot 官方文档中有关 Logback 配置的描述,再看一下
最后又搜了一下,在这个回答中找到了答案,stackoverflow
If spring boot doesn’t find any logback configurations (“logback-test.groovy”, “logback-test.xml”, “logback.groovy”, “logback.xml”) on the classpath, logback-spring.xml will be picked up.
总结
Spring Boot 会在 classpath 下查找是否有 jar 包,包含 logback-test.groovy
、logback-test.xml
、logback.groovy
或者 logback.xml
,如果都找不到的话,才会加载项目路径下的 logback-spring.xml
。