springboot 源碼閱讀之 logback-spring.xml 是在哪裏加載的?

強制在 logback-spring.xml 中人爲製造一個錯誤,然後啓動 springboot 工程,得到如下錯誤調用棧信息:

 

進入 LogbackLoggingSystem.java 第 169行所在的方法 loadConfiguration打斷點, debug  進入此方法,發現此時傳入的參數 location 已經是 classpath:logback-spring.xml, 所以接下來在 AbstractLoggingSystem.initializeWithConventions 方法中打斷點,debug進入:

 

發現config 是在調用  getSpringInitializationConfig 之後被賦值爲 classpath:logback-spring.xml 的,所以進入 getSpringInitializationConfig:

進入 getSpringConfigLocations:

getStandardConfigLocations 的方法體爲:

 

返回一個寫死了幾個文件名的數組

locations[i] = locations[i].substring(0, locations[i].length() - extension.length() - 1) + "-spring." + extension

這句代碼的意思是 將上面數組中的每個文件名去掉 "點",去掉 後綴之後的文件名 和 -spring 和 .後綴 拼接一塊兒,

如將 logback.xml 變成 logback-spring.xml

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章