项目日志系统将会扔掉commons-logging和log4j,使用SLF4J全面接管,无障碍迁移。
优点:
超超超低依赖性
透明切换不同是日志实现方式
编译器绑定底层实现的方式,不会有classloader问题
性能更佳
已经Hibernate、Jetty、Spring-OSGi、Tapestry等项目中使用
完善又免费的文档
各个jar包功能:
slf4j-api-1.4.3.jar - 一定是要的,直接支持logback实现
jcl104-over-slf4j-1.4.3.jar - 使用common-loggin的接口,底层还是由SLF4J来决定哪种实现机制
slf4j-jcl-1.4.3.jar - 使用SLF4J的接口,底层由common-loggin实现(不能和jcl104-over-slf4j-1.4.3.jar同时使用)
slf4j-log4j12-1.4.3.jar - 使用SLF4J的接口,底层由log4j实现
slf4j-jdk14-1.4.3.jar - 使用SLF4J的接口,底层由java自身的日志系统实现
语法:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
final Logger logger = LoggerFactory.getLogger(Test.class);
public void hi() {
// 不再需要log.isDebugalbe(),代码更简洁
logger.debug(”hello {}”, “amsz”);
}
}
优点:
超超超低依赖性
透明切换不同是日志实现方式
编译器绑定底层实现的方式,不会有classloader问题
性能更佳
已经Hibernate、Jetty、Spring-OSGi、Tapestry等项目中使用
完善又免费的文档
各个jar包功能:
slf4j-api-1.4.3.jar - 一定是要的,直接支持logback实现
jcl104-over-slf4j-1.4.3.jar - 使用common-loggin的接口,底层还是由SLF4J来决定哪种实现机制
slf4j-jcl-1.4.3.jar - 使用SLF4J的接口,底层由common-loggin实现(不能和jcl104-over-slf4j-1.4.3.jar同时使用)
slf4j-log4j12-1.4.3.jar - 使用SLF4J的接口,底层由log4j实现
slf4j-jdk14-1.4.3.jar - 使用SLF4J的接口,底层由java自身的日志系统实现
语法:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
final Logger logger = LoggerFactory.getLogger(Test.class);
public void hi() {
// 不再需要log.isDebugalbe(),代码更简洁
logger.debug(”hello {}”, “amsz”);
}
}