一、日志框架功能及结构

功能:异步模式,自动归档,日志级别划分,日志文件划分与压缩,版本迭代对业务代码改动小等。 结构:类似于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选择SLF4JLogback,而Spring框架默认使用JCL

三、SLF4J的使用

官网:https://www.slf4j.org

开发过程中,日志记录方法不应该直接调用日志的实现类,而是调用日志抽象层里面的方法。

  1. /**
  2. * 开发之前应先给系统里面导入slf4j的抽象jar和logback的实现jar
  3. **/
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. public class HelloWorld {
  7. public static void main(String[] args) {
  8. Logger logger = LoggerFactory.getLogger(HelloWorld.class);
  9. logger.info("Hello World");
  10. }
  11. }

SLF4J抽象层和各日志实现层接入说明图示
concrete-bindings.png

每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件使用日志实现框架本身的配置文件。