1、添加依賴
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.25</version>
</dependency>
如上所示是集成所需要的依賴,其中:
第一個logback-classic已經包含了logback本身所需的slf4j-api.jar、logback-core.jar及logback-classsic.jar,我們不用再寫slf4j-api和logback-core的依賴,當然寫了,maven也會幫我們做處理
第二個logback-ext-spring是由官方提供的對Spring的支持,它的作用就相當于log4j中的Log4jConfigListener;這個listener,網上大多都是用的自己實現的,原因在于這個插件似乎并沒有出現在官方文檔的顯要位置導致大多數人并不知道它的存在
第三個jcl-over-slf4j是用來把Spring源代碼中大量使用到的commons-logging替換成slf4j,只有在添加了這個依賴之后才能看到Spring框架本身打印的日志,否則只能看到開發者自己打印的日志
2、編寫logback.xml
可以參考一下上一篇文章《maven項目中使用logback+slf4j》的配置
有空的話還是看看官方文檔吧,,里面有詳細用法及其xml文件的相關語法,可參見它的用戶向導
3、配置web.xml
與log4j類似,logback集成到Spring MVC項目中,也需要在web.xml中進行配置,同樣也是配置一個config location和一個config listener,如下所示:
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>classpath:logback.xml</param-value>
</context-param>
<listener>
<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>
4、Run as 運行web項目,就可以看到生成的日志
其中LogbackConfigListener由前述的logback-ext-spring依賴提供,如果沒有添加這個依賴則找不到這個listener類
總結
從上面可以看出,slf4j-log4j和slf4j-logback集成到Spring MVC(或推廣到其它Java Web項目中)的步驟大體是相同的。集成完畢后,就可以通過slf4j提供的API隱藏掉logback(或log4j)的具體實現,直接進行日志處理了
使用slf4j-api的時候,需要注意的是:slf4j采用了單例模式,項目中創建的每一個Logger實例都會按你傳入的name(傳入的Class<?>實例也會被轉換成String型的name)保存到一個靜態的ConcurrentHashMap中;因此只要name(或Class<?>實例)相同,每次返回的實際上都是同一個Logger實例。因此完全沒必要把Logger實例作為常量或靜態成員,隨用隨取即可。實際上,其作者也不建議那么做