SLF4J(simple logging facade for Java),简单日志门面,旨在为各种logging API(SimpleLogger, log4j, JDK14Logger, Logback等 )提供一个简单统一的接口。
如何理解呢?
和JDBC相对照,JDBC为java的数据库连接和操作提供了统一的API,如Connection, PreparedStatement等,而各个具体数据库的操作封装在该数据库的jar包当中,如mysql-connector-java-5.1.39-bin.jar。这其实是一个Service-Provider框架。DriverManager.register()方法会调用Class.forName()方法加载具体jar包中的Driver实现,如com.mysql.jdbc.Driver类,用它实例化java.sql.Driver接口。而通过Class.forName()方法,jdbc框架在实现时并不依赖具体数据库的Driver实现。
反过来看SLF4J,SLF4J通过LoggerFactory.getLogger()方法获得具体的Logger实现(LoggerFactory可以对应DriverManager), 而具体的Logger实现则封装在具体的日志的jar包,如slf4j-simple-1.4.1.jar等。
使用时记得还要同时引入slf4j的jar包,slf4j-api-1.4.1.jar。(因为slf4j并没有和jdbc同等的地位,闲话^_^)