SpringBoot項目日志配置失效:log4j2.xml不起作用怎么辦?

springboot項目日志配置失效排查

本文將針對SpringBoot整合slf4j和log4j2后,log4j2.xml配置文件失效的問題進行詳細分析和解答。問題描述如下:開發者在項目中配置了log4j2.xml文件,但自定義的日志輸出格式PatternLayout并未生效,懷疑系統使用了默認配置。

問題根源在于spring boot默認的日志框架是logback,即使引入了log4j2,如果沒有正確排除Logback的依賴,則Logback仍然會生效,導致log4j2配置失效。

觀察提供的pom.xml文件,我們可以看到開發者已經嘗試通過 標簽排除了spring-boot-starter-Logging依賴,這本應解決問題。然而,問題仍然存在,這暗示可能存在其他依賴間接引入了Logback。

仔細檢查pom.xml中的依賴項,可以發現mybatis-spring-boot-starter依賴。該依賴可能會間接引入Logback。雖然開發者在排除spring-boot-starter-logging依賴時已經非常小心,但mybatis-spring-boot-starter內部可能包含了Logback的依賴,導致其優先于log4j2生效。

為了驗證這個推測,建議開發者檢查mybatis-spring-boot-starter (版本2.3.0) 的依賴樹,查看其依賴中是否包含了slf4j以及Logback相關的依賴。如果存在,則需要進一步排除這些依賴,確保只保留slf4j-api和log4j2及其相關的實現。

另外,可以通過在application.properties文件中配置logging.level.root=debug來提高日志級別到debug,重新啟動應用。觀察啟動日志,查看log4j2的配置是否被正確加載。如果啟動日志中顯示log4j2相關配置信息,說明log4j2已加載,問題可能出在log4j2.xml的配置本身;如果啟動日志中沒有log4j2配置信息,則說明log4j2并未生效,需要進一步檢查依賴沖突。

通過以上步驟,開發者可以逐步排查log4j2配置文件失效的原因,最終解決問題。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享