SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。
驱动和桥接
log4j是一个日志系统。
slf4j是一个日志系统的封装,对外提供统一的API
使用slf4j需要下载slf4j-api-x.x.x.jar 它提供对外一致的API接口,其本身不提供日志实现。假设我们选择log4j作为我们的日志实现,需要下载log4j-x.x.x.jar如果想把slf4j绑定log4j,则需要下载slf4j对log4j的相应”驱动”。slf4j-log4j12-x.x.x.jar这样就可以使用slf4j提供的API,用log4j实现打日志了。所谓驱动,就是实现了slf4j的一些接口,用你喜欢的日志系统打日志。slf4j还支持好多日志系统,并提供了相应的“驱动”包
例如:
slf4j-jdk14-x.x.x.jar是为java.util.logging提供的驱动