首页 > 其他分享 >SpringBoot中的日志框架(未完成)

SpringBoot中的日志框架(未完成)

时间:2022-11-26 03:22:06浏览次数:62  
标签:需要 SpringBoot 框架 SLF4J API ----- 日志

日志是什么?

日志是一个记录事件的组件,无论是记录运行情况还是追踪线上问题,都需要分析日志。

为什么需要日志框架?

场景演变:
1、最初时利用System.out.println("msg")来输出关键信息到控制台
2、当需要隐藏一些信息就需要手动注释掉代码
3、当关键信息不需要输出到控制台而是文件中,方便后续跟踪,则又需要统一修改代码
4、此时可以初步实现一个日志框架1.0版本
5、当需要日志记录不会阻塞程序的运行,或者统一归档,又或者按照时间来分类记录
6、此时需要开发一个日志框架2.0
7、同时需要替换原来的jar包,这就需要修改相关的API,这样每次更新都要频繁的修改API
8、借鉴JDBC和数据库驱动的思想,我们需要设计一个统一的接口API和不同的API实现,这样在不修改源代码的基础上只需更换API的实现jar包就可以更改底层实现逻辑

常见的日志框架

  1. 日志抽象层:JCL、SLF4J、jboss-logging
  2. 日志实现层:jul、log4j、logback、log4j2
    分析:
    jboss-logging-----对于特定框架来使用
    JCL-----已经不更新了
    jul-----功能不够强大
    log4j-----存在性能问题
    logback-----优化log4j新产生的实现
    log4j2-----功能强大

Spring框架默认使用JCL(Commmons logging)作为日志输出
SpringBoot采用的日志框架为:日志抽象层SLF4J + 具体实现logback

SLF4J的使用

SLF4J官方案例

首先导入SLF4J的jar包

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {

  public static void main(String[] args) {
    // 创建一个记录器,用来专门记录HelloWorld.class类的相关信息
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    // 日志输出 
    logger.info("Hello World");
  }
}

使用SLF4J结合不同的日志实现

  1. SLF4始终作为日志门面,绑定log4j和jul时需要引入适配工具 Adaptation layer,
  2. 每个日志实现框架都有自己的配置文件,所以在使用SLF4J之后还需要使用日志实现的配置文件。
    image

统一日志框架

在项目中会使用其他第三方框架引入其他的日志实现,导致项目中的jar包有多又乱,所以需要统一日志框架:

  1. 排除项目中其他日志框架
  2. 使用中间包替换排除的日志框架
  3. 引入需要统一的日志框架
    image

SpringBoot中默认是SLF4J+logback,已经完成其他日志框架的排除,比如:

通过<exclusions>和<exclusion>标签

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-console</artifactId>
    <version>${activemq.version}</version>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

标签:需要,SpringBoot,框架,SLF4J,API,-----,日志
From: https://www.cnblogs.com/zygln/p/16926822.html

相关文章