一、日志框架功能及结构
功能:异步模式,自动归档,日志级别划分,日志文件划分与压缩,版本迭代对业务代码改动小等。 结构:类似于JDBC与数据库的关系,有统一的接口层(抽象层),具体操作由导入的不同日志框架完成。
二、市面上的日志框架
JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j 等
日志门面(抽象层)框架 | 日志实现 |
---|---|
JCL(Jakarta Commons Logging)、 SLF4j(Simple Logging Facade for Java)、 jboss-logging |
Log4j、 JUL(java.util.logging)、 Log4j2、 Logback |
左边选一个日志抽象层框架,右边选一个日志实现层框架。
SpringBoot选择SLF4J
和Logback
,而Spring框架默认使用JCL
。
三、SLF4J的使用
开发过程中,日志记录方法不应该直接调用日志的实现类,而是调用日志抽象层里面的方法。
/**
* 开发之前应先给系统里面导入slf4j的抽象jar和logback的实现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抽象层和各日志实现层接入说明图示
每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件使用日志实现框架本身的配置文件。