1. 程式人生 > >解決專案中多種日誌框架衝突

解決專案中多種日誌框架衝突

問題

最近在開發中,專案使用的日誌框架是log4j,在引入第三方庫tess4j之後,由於tess4j中也使用了日誌,報錯:
在這裡插入圖片描述

原因是:log4j-over-slf4j和slf4j-log4j12是跟Java日誌系統相關的兩個jar包,當它們同時出現在classpath下時,就可能會引起堆疊溢位異常。

解決

此警告資訊表示工程中有logback和log4j兩種日誌框架,最後slf4j選擇了logback。那麼該問題如何解決呢,可以看出日誌中也打印出來了問題說明的網址,見http://www.slf4j.org/codes.html#multiple_bindings
在這裡插入圖片描述

在maven中加入此段依賴即可解決問題。

總結

如果不想使用某個日誌框架,就在依賴中排除該框架的依賴。比如示例中,工程依賴了cassandra-all,而cassandra-all內部使用了log4j作為日誌框架,若我們工程不想使用log4j,就需要排除log4j和slf4j-log4j12兩個依賴。