可能遇到的jar包:
(來源:http://openwebx.org/docs/logging.html#d0e14854)
commons-logging apache最初的日志門面,目的是在開發組件時不強依賴日志實現,給調用者以選擇。
jcl-over-slf4j slf4j開發的為了兼容前者的適配,里面的內容和前者基本一致,引用時和前者互斥。
slf4j-ap
i slf4j的主api,作為獨立的日志門面。
slf4j-log4j slf4j對log4j的適配,要和log4j包一起引用
log4j log4j實現
logback-classic logback實現。
引用關系:
目前項目中的log4j引用比較混亂。可用的依賴和使用方式由如下那么幾種:
1. log4j-1.2.16.jar
不使用框架,僅使用實現。項目中不常使用
使用Logger.getLogger()
2.
commons-logging + log4j
簡單門面+實現
使用
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static final Log logger = LogFactory.getLog(CourseCenterUnitTestBase.class);
3.
jcl-over-slf4j + slf4j-api + slf4j-log4j + log4j
slf4j門面+log4j實現。
官方解釋是這個組合,解釋為jcl-over-slf4j的作用是把apache的門面嫁接到slf4j的門面。我測試了一下,實際上commons-logging + slf4j-api + slf4j-log4j + log4j 貌似也行得通。
使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(CourseCenterUnitTestBase.class);
4.
jcl-over-slf4j + slf4j-api + logback-classic
slf4j門面+logback實現。沒使用過,相信網上一大堆。