SLF4J简介
SLF4J是一款Java程序编写的日志门面框架,其本身定义了统一的日志接口,且对不同的日志实现框架进行抽象化,我们的应用只需要跟SLF4J进行沟通,而不需要跟具体实现框架直接沟通,从而调用具体实现框架的相关方法进行日志记录。这样我们可以方便的切换日志的实现框架,且无需改动我们的应用,这也是门面模式的优点。
SLF4J依赖
SLF4J官方对于不同日志框架集成的依赖图:
通过该图我们可以知道SLF4J对于不同日志框架的集成所需要的依赖,如集成Log4j的话我们需要以下依赖:
- slf4j-api:SLF4Jjar包
- log4j:Log4jjar包
- slf4j-log4j12:SLF4J对于Log4j的适配Jar包
另外通过改图我们也可以知道Logback对于SLF4J的无缝衔接。
SLF4j的使用
引入相关jar包
<!-- SLF4J与Log4j的适配器 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.8.0-alpha2</version>
</dependency>
<!-- 引入SLF4J -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
<!-- 引入Log4j jar -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
测试代码:
package com.frank;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @Classname SLF4JandLog4j
* @Description TODO
* @Date 2019/6/8 22:28
* @Created by Frank
*/
public class SLF4JandLog4j {
// 通过SLF4J获取Log4j的日志记录器
private final static Logger logger = LoggerFactory.getLogger(SLF4JandLog4j.class);
public static void main(String[] args) {
logger.debug("SLF4J to print log4j DEBUG info");
logger.info("SLF4J to print log4j INFO info");
logger.warn("SLF4J to print log4j WARN info");
logger.error("SLF4J to print log4j ERROR info");
}
}
输出结果: