文档介绍:SLF4J中文手册
SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。
典型的使用模式
下面同样的代码展示了 SLF4J 的典型使用模式。注意第15行{}-占位符的使用。更多详细内容请查看FAQ中的问题"What is the fastest way of logging?"
1: .;
2: .;
3:
4: public class Wombat {
5:
6: final Logger logger = ();
7: Integer t;
8: Integer oldT;
9:
10: public void setTemperature(Integer temperature) {
11:
12: oldT = t;
13: t = temperature;
14:
15: ("Temperature set to {}. Old temperature was {}.", t, oldT);
16:
17: if(() > 50) {
18: ("Temperature has risen above 50 degrees.");
19: }
20: }
21: }
在部署阶段绑定某个日志框架
前面提到过,SLF4J 支持多种日志框架。SLF4J 发行包中自带几个用于“SLF4J绑定”的jar 文件, 每种绑定对应一种支持的日志框架。
slf4j-log4j12-
用于绑定 , 这是一个广泛使用的日志系统,当然你还要把log4j包加到classpath中
slf4j-jdk14-
用于绑定 , 作为JDK 的logging
slf4j-nop-
用于绑定 NOP, 不做任何操作.
slf4j-simple-
用于绑定 simple 的实现, 所有的打印会响应到 . 只有INFO或者更高的级别会被打印. 这个绑定在小型应用中非常有用。
slf4j-jcl-
用于绑定 mons