springboot專案logback.xml或者logback-spring.xml中讀取不到application.yml或application.properties配置檔案中的配置解決辦法
阿新 • • 發佈:2018-12-17
在springboot專案中我們可能想要實現不同環境的日誌專案配置不同,比如我想讓不同環境的日誌路徑不同。
這時候我們很容易想:
1、到將日誌路徑配置在springboot的:application-dev.yml,application-prod.yml,application-test.yml配置檔案中,
2、再在logback.xml或者logback-spring.xml中使用 "${}"來引用配置值,比如我的日誌輸出目錄在不同環境配置檔案的配置如下:
開發環境配置檔案application-dev.yml:
path: log: C:/logs-reptile-dev
測試環境配置檔案application-test.yml:
path:
log: C:/logs-reptile-test
生產環境配置檔案application-prod.yml:
path:
log: C:/logs-reptile-prod
在 logback-spring.xml中配置引用如下:
<property name="log.path" value="${path.log}"/>
但是很遺憾這樣並讀不到我們配置的值,這時候我們需要通過springProperty標籤來引用,例入我的:
<springProperty scope="context" name="log.path" source="path.log"/>
這裡的name和上面property標籤一樣不多說,source其實就是上面的value啦,只不過要注意:千萬不要加${}
如果還是讀取不到,請把你的logback.xml配置檔名,改為:logback-spring.xml就可以啦
至於為什麼要這麼做,就是因為logback.xml的載入順序早於springboot的application.yml配置檔案當然讀不到application.yml檔案中的值了。想了解更多自行百度吧。