SELF4J 文档学习笔记
1 简单介绍
SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,每个与具体日志系统对应的jar包都有一个org.slf4j.impl.StaticLoggerBinder的实现,不同的实现返回与该日志系统对应的LoggerFactory,因此就实现了所谓的静态绑定,达到只要选取不同jar包就能简单灵活配置的目的。
2 使用LOG4J
使用SELF4J需要在classpath中加入slf4j-api-1.7.14.jar
绑定到具体日志系统还需要加入相应的连接jar和具体日志系统jar
2.1 简单使用
我们在classpath中加入slf4j-api-1.7.14.jar
运行如下程序:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
}
}
屏幕上会有如下警告,这是因为没有绑定到具体日志系统
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
我们在classpath中加入slf4j-simple-1.7.14.jar
再次运行上述项目可以输出如下结果
0 [main] INFO HelloWorld - Hello World
2.2 常用代码
1、常用声明
//类的logger:ClassName为本类名称(其实默认带了包名)
static final Logger logger = LoggerFactory.getLogger(ClassName.class);
//自定义logger:LoggerName为用户自定义名称(没有包名一说)
static final Logger logger = LoggerFactory.getLogger(LoggerName);
2、常用方法
logger.error("some error.");
logger.warn("some warn.");
logger.info("some info.");
logger.debug("some debug.");
3、常用占位符
//大括号{}表示占位符
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
3 各日志系统jar的配置
3.1 self4j的配置
加入slf4j-api-1.7.14.jar文件
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.14</version>
</dependency>
3.2 绑定到具体日志系统
3.2.1 NOP:no-operation
加入 slf4j-nop-1.7.14.jar
不做任何操作,忽略所有log操作
3.2.2 simple
加入 slf4j-simple-1.7.14.jar
所有info及以上级别的log用System.err输出,仅适用于小型项目
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.14</version>
</dependency>
3.2.3 log4j
加入 slf4j-log4j12-1.7.14.jar
加入 log4j-1.2.x.jar
MAVEN 中只需配置slf4j-log4j12-1.7.14.jar,而log4j-1.2.17.jar 和 slf4j-api-1.7.14.jar 会自动下载,当然显示配置也可以。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.14</version>
</dependency>
3.2.4 logback-classic
加入 logback-classic-1.0.13.jar
加入 logback-core-1.0.13.jar
MAVEN 中只需配置logback-classic-1.0.13.jar,而logback-core-1.0.13 和 slf4j-api-1.7.14.jar 会自动下载,当然显示配置也可以。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
3.2.5 java.util.logging
加入 slf4j-jdk14-1.7.14.jar
MAVEN 中只需配置slf4j-jdk14-1.7.14.jar,而slf4j-api-1.7.14.jar 会自动下载,当然显示配置也可以。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.14</version>
</dependency>
3.2.6 jcl:Jakarta Commons Logging
slf4j-jcl-1.7.14.jar