我相信對于絕大多數(shù)小白來說,日志框架這一塊會特別的頭痛,特別是在一個大項(xiàng)目中,POM文件中包含了各種各樣的日志依賴,然后各種各樣的日志依賴(slf4j,logging,log4j,logback等)又相互沖突,導(dǎo)致我們經(jīng)常不知道該怎么辦,對于輸出的日志格式也經(jīng)常是隨緣的,系統(tǒng)怎么輸出就怎么看,根本拿它沒有辦法?,F(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)實(shí)現(xiàn)(logging,log4j,logback)的抽象層或者接口層。因此我們就可以把slf4j理解成各種日志框架的api,這樣我們在需要使用日志的地方,使用的是slf4j的api,而不是特定的日志框架的api去打印日志,提高了可擴(kuò)展性和可維護(hù)性。
對于slf4j在日志系統(tǒng)中的地位,官網(wǎng)中的示意圖如下:

接下來看一些日志框架使用的例子
第一種只引入slf4j



上面的意思是,在運(yùn)行的時候,找不到日志的實(shí)現(xiàn),所以slf4j默認(rèn)的使用了一個什么也不做的實(shí)現(xiàn)。
第二種引入slf4j和simple



可見日志已經(jīng)打印出來了,而且還不需要任何的配置。
第三種使用slf4j和log4j



在沒有配置log4j輸出格式的時候,系統(tǒng)就會進(jìn)行提醒,不會打印出日志。進(jìn)行如下配置:


第四種使用slf4j和jdk


