我相信對于絕大多數(shù)小白來說,日志框架這一塊會特別的頭痛栅哀,特別是在一個大項目中震肮,POM文件中包含了各種各樣的日志依賴,然后各種各樣的日志依賴(slf4j留拾,logging戳晌,log4j,logback等)又相互沖突痴柔,導致我們經(jīng)常不知道該怎么辦沦偎,對于輸出的日志格式也經(jīng)常是隨緣的,系統(tǒng)怎么輸出就怎么看,根本拿它沒有辦法『篮浚現(xiàn)在就讓我們來全面的了解一些不同的日志框架搔驼,使其可以很好的為我們所用,成為我們消滅bug的一個好幫手侈询。
The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time
我們?nèi)粘1容^常見的日志框架有slf4j舌涨、logging、log2j扔字,logback囊嘉,slf4j的全稱是Simple Logging Faced for Java,采用的是一種門面模式革为,是各種日志的系統(tǒng)實現(xiàn)(logging扭粱,log4j,logback)的抽象層或者接口層篷角。因此我們就可以把slf4j理解成各種日志框架的api焊刹,這樣我們在需要使用日志的地方,使用的是slf4j的api恳蹲,而不是特定的日志框架的api去打印日志虐块,提高了可擴展性和可維護性。
對于slf4j在日志系統(tǒng)中的地位嘉蕾,官網(wǎng)中的示意圖如下:
接下來看一些日志框架使用的例子
第一種只引入slf4j
上面的意思是贺奠,在運行的時候,找不到日志的實現(xiàn)错忱,所以slf4j默認的使用了一個什么也不做的實現(xiàn)儡率。
第二種引入slf4j和simple
可見日志已經(jīng)打印出來了,而且還不需要任何的配置以清。
第三種使用slf4j和log4j
在沒有配置log4j輸出格式的時候儿普,系統(tǒng)就會進行提醒,不會打印出日志掷倔。進行如下配置:
第四種使用slf4j和jdk