起因
今天在把一個老項目從 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
。