橋接舊的日誌框架(Bridging)
通常,您依賴的某些組件依賴於SLF4J以外的日誌記錄API。您也可以假設這些組件在不久的將來不會切換到SLF4J。爲了解決這種情況,SLF4J附帶了幾個橋接模塊,這些模塊將對log4j,JCL和java.util.logging API的調用重定向,就好像它們是對SLF4J API一樣。
橋接解決的是項目中日誌的遺留問題,當系統中存在之前的日誌API,可以通過橋接轉換到slf4j的實現
1. 先去除之前老的日誌框架的依賴
2. 添加SLF4J提供的橋接組件
3. 爲項目添加SLF4J的具體實現
遷移的方式:
如果我們要使用SLF4J的橋接器,替換原有的日誌框架,那麼我們需要做的第一件事情,就是刪除掉原有項目中的日誌框架的依賴。然後替換成SLF4J提供的橋接器。
<!-- log4j-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.27</version>
</dependency>
<!-- jul -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.27</version>
</dependency>
<!--jcl -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>
注意問題:
1. jcl-over-slf4j.jar和 slf4j-jcl.jar不能同時部署。前一個jar文件將導致JCL將日誌系統的選擇委託給SLF4J,後一個jar文件將導致SLF4J將日誌系統的選擇委託給JCL,從而導致無限循環。
2. log4j-over-slf4j.jar和slf4j-log4j12.jar不能同時出現
3. jul-to-slf4j.jar和slf4j-jdk14.jar不能同時出現
4. 所有的橋接都只對Logger日誌記錄器對象有效,如果程序中調用了內部的配置類或者是Appender,Filter等對象,將無法產生效果。