SLF4J是Simple Logging Facade for Java 的简称,即java简单日志外观,说白了就是一些通用日志功能的API。它是新一代的通用日志框架,现在好多的开源项目的新版本都开始使用该通用日志框架
SLF4J和commons-logging一样都是为日志功能提供简单统一的接口,可以方便系统更换日志实现。
SLF4J解决了Commons-logging中存在的一些问题,具体细节大家可以百度。它将会成为代替commons-logging的新一代通用日志框架。
下面将具体介绍SLF4J的原理和使用
SLF4J的核心包slf4j-api.jar中只包含了日志功能的API,即各种接口,它和commons-logging不一样,简单日志实现没有放在核心包内,而是作为一个具体实现放在一个单独的jar包中:slf4j-simple.jar。slf4j-api.jar包不能单独使用(commons-logging.jar可以单独使用,因为它自己的简单实现就放在此包内),必须配合具体日志的适配器和具体日志实现包一块使用。
SLF4J的使用原理(以log4j为具体实现例子)
Slf4j-api------slf4j-log4j适配器-------log4j具体实现
在SLF4J官方发布包中,除了slf4j-api.jar包外,还有许多与具体日志实现相对应的适配器包,如下图所示
从上面可以看出:slf4j-api和具体日志的绑定是通过像slf4j-log4j.jar这样适配器包实现的
SLF4J +Log4j DEMON
项目目录结构
测试类
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogTest {
public static void main(String[] args) {
Logger logger=LoggerFactory.getLogger(LogTest.class);
logger.warn("----log4j实现------");
}
}
从上述代码中可以看出只用到slf4j的API,看不到具体实现的痕迹
运行效果
SLF4J将会成为代替commons-logging的新一代通用日志框架,大家很有必要学习一下。