1. 程式人生 > >springboot專案logback.xml或者logback-spring.xml中讀取不到application.yml或application.properties配置檔案中的配置解決辦法

springboot專案logback.xml或者logback-spring.xml中讀取不到application.yml或application.properties配置檔案中的配置解決辦法

在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檔案中的值了。想了解更多自行百度吧。