SpringBoot与日志slf4j使用原理

引言

    在这篇博客中主要介绍的关于日志的使用,对于日志作为在开发中一个比较重要的工具,对于开发人员查找应用的错误是一个比较好的方式。对于日志的分析也是掌握应用的生存状态的最好的办法。

  • 日志框架使用
  • 日志配置

日志问题

  • 使用的System.out的方式进行调试信息的输出麻烦
  • 如果要统计日志信息麻烦。
  • 如果要进行日志敏感信息的隐藏,日志归档的功能,等等功能麻烦
  • 如果要进行日志功能的扩展麻烦

    为了解决以上的四大麻烦,就需要使用了日志接口的形式。这个可以适配与任何的一种日志行为,这就出现了日志框架,这些日志框架都是实现了日志抽象层的东西。

市面上的日志框架

日志抽象层:JUL、JCL、Jboo-logging 日志实现:logback、Log4j、Log4j2、slf4j等等的日志框架。

  在SpringBoot底层默认使用的是Spring框架,而Spring默认使用的是JCL的日志框架,但是在SpringBoot对日志进行了封装,在SpringBoot中选用的是SLF4j和logback日志框架。

SLF4j的使用

   在开发的时候我们都知道使用日志的时候都是使用log.XX的方式进行。在Java编程中有一个概念就是向上转型,所以在这里调用的方法应该是抽象层的方法,java会根据具体的实现进行相应相应的选择。
SpringBoot与日志slf4j使用原理
在java.util.logging包中也有一个对应的实现,而这里我所说的是图中最后一个。我们会看到这个是一个接口类,而具体的实现则是由后面的LoggerFactory.getLogger来实现。

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的官网 https://www.slf4j.org/manual.html
SpringBoot与日志slf4j使用原理
使用对应的的日志框架,就需要使用对应的配置方式进行日志的配置。对于这着配置文件都是日志框架自己的配置文件。与SpringBoot框架的配置文件并没有关系。

总结

到这里就简单的说完了关于日志框架的使用。但是在实际开发中的使用还是要根据具体的使用场景进行配置。对于更加高级的使用可以通过参考日志框架的官方。