1. SLF4J介绍
1.1. SLF4J(Simple Logging Facade for Java)简单的java日志门面, 它是各种日志框架的抽象服务(例如: logback, log4j, java.util.logging), 它允许使用者以插件的形式设计自己的日志框架。
2. SLF4J官网
2.1. 地址: https://www.slf4j.org/index.html
3. 下载SLF4J
3.1. 点击Download
3.2. 点击Maven central
3.3. 点击slf4j-api
3.4. 点击最新的1.7.30
3.5. 3.5. 点击下载slf4j-api-1.7.30.jar和它的源码包slf4j-api-1.7.30-sources.jar
4. 在部署时绑定一个日志框架
4.1. 如前所述, SLF4J支持各种各样的日志框架。SLF4J的发行版附带的几个jar被称为"SLF4J bindings", 每个绑定都对应一个受支持的框架。
4.2. slf4j-log4j12-1.7.19.jar: 绑定log4j 1.2版本, log4j是一个广泛使用的日志框架。你也需要将在log4j.jar放置到class path上。
4.3. slf4j-jdk14-1.7.19.jar: java.util.logging的绑定, 也被称为JDK 1.4日志。
4.4. slf4j-nop-1.7.19.jar: 绑定为NOP, 静默丢弃所有日志记录。
4.5. slf4j-simple-1.7.19.jar: 进行简单的实现绑定, 该实现将所有事件输出到System.err。仅打印INFO和更高级别的消息。在小型应用程序的上下文中非常有用。
4.6. logback-classic-1.0.13.jar(依赖logback-core-1.0.13.jar): SLF4J项目之外也有SLF4J绑定, 比如: logback完整的实现了SLF4J接口。因此, 将SLF4J和logback一起使用涉及到严格零内存计算开销。
4.7. 要进行日志框架切换, 只需要替换class path中的slf4j绑定即可。比如说, 从java.util.logging切换到log4j, 仅仅把slf4j-jdk14-1.7.19.jar替换成slf4j-log4j12-1.7.19.jar。
4.8. SLF4J不依赖任何特殊类的装载机。实际上, 每个SLF4J绑定在编译时都 进行了硬连线, 以使用一个且仅一个特定的日志记录框架。例如, slf4j-log4j12-1.7.28.jar绑定在编译时绑定为使用log4j。在您的代码中, 除了slf4j-api-1.7.28.jar之外, 只能有一个你选择的绑定到正确的class path路径上, 不要在class path放置多个绑定。
4.9. SLF4J日志系统调用流程图
5. 例子
5.1. 新建一个名为SLf4j的Java项目, 同时添加jar
5.2. 编写HelloWorld.java
package com.rjbd.slf4jrm;
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");
}
}
5.3. 运行项目, 控制台报错, 其实就是没有slf4j的具体实现
5.4. 添加slf4j-simple-1.7.30.jar
5.5. 运行项目