http://singleant.iteye.com/blog/934593
这么多logger,什么区别呢?
apache commons-logging类似jdbc的api接口,具体实现有log4j等,这样写代码的时候就不需要要和具体实现耦合,只要用api就可以了,那么api是如何找到用哪一实现呢?有一些规律,链接中都已经指出。
同样slf4j功能和acl差不多,具体实现有很多种,典型如logback。那么使用场景有以下几种:
1。老式的,acl+log4j
2。新式的,slf4j+logback
3。老式换成新式的,acl+log4j+slf4j,这时acl初始化时会找到slf4j,因为slf4j.jar有META-INF/services/org.apache.commons.logging.LogFactory =org.apache.commons.logging.impl.SLF4JLogFactory ,这样就是用了slf4j。
但是slf4j不能有多个实现类,否则会变懵出错。
原因索引如下:
logger.isDebugEnabled()
来解决日志因为字符拼接产生的性能问题。详情请移步为什么要使用SLF4J而不是Log4Jlogger.debug("Processing
trade with id: {} and symbol : {} ", id, symbol);
原文:http://www.cnblogs.com/jvava/p/3595859.html