commons-logging和slf4j两种日志门面的使用

时间:2021-08-14 22:01:31

转:http://blog.csdn.net/zilong0536/article/details/53021918


  早期Java项目使用最多的日志门面是commons-logging,log4j是推荐的日志实现库,需要的jar包为commons-logging.jar、log4j.jar。 
  现今java项目推荐的日志门面是slf4j,log4j仍是推荐的日志实现库,需要的jar包为slf4j-api.jar、slf4j-log4j12.jar、log4j.jar,其中绑定包slf4j-log4j12.jar指定了要使用的实现库。 
  commons-logging存在osgi问题,但早期项目多使用其作为日志门面,为保证兼容仍使用其作为日志门面,但通过slf4j的静态绑定技术来加载具体的日志库log4j,需要的jar包为commons-logging.jar、jcl-over-slf4j.jar、slf4j-api.jar、slf4j-log4j12.jar、log4j.jar,其中jcl-over-slf4j.jar将日志的接口重定向到slf4j。

  使用log4j需先将日志的相关信息在属性文件properties或xml文件配置好,剩下的事情就是在项目中的适当位置打日志。

public class LogTest {
// slf4j接口使用
// getLogger内调用slf4j-log4j.jar的StaticLoggerBinder类的getLogger,获取对应的log4j
private static final Logger logger = LoggerFactory.getLogger(LogTest.class);

// commons-logging接口使用
// 与slf4j基本一样,一个用Logger,一个用Log
private static final Log logger = LoggerFactory.getLogger(LogTest.class);

public static void main(String[] args) {
logger.trace("trace");
logger.debug("dubug");
logger.info("info");
logger.warn("warn");
logger.error("error");
}
}