log4j的相关jar包总结
可能遇到的jar包:
?
?(来源:http://openwebx.org/docs/logging.html#d0e14854)
?
commons-logging?apache最初的日志门面,目的是在开发组件时不强依赖日志实现,给调用者以选择。
jcl-over-slf4j?slf4j开发的为了兼容前者的适配,里面的内容和前者基本一致,引用时和前者互斥。
slf4j-api? ?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实现。没使用过,相信网上一大堆。