**日志门面和日志实现的关系:**日志门面类似于一种规定,只提供了一些统一的接口方法,但并没有具体实现,而日志实现是这些接口方法的具体实现方式,日志系统是通过日志实现来决定最终的日志格式、记录级别、输出方式等日志信息的输出方式。

springboot 的日志系统组成:

**日志门面:**Slf4j

**日志实现:**Logback

此依赖默认被springboot框架所包含,不需要手动注入,可以直接使用。

日志系统的简单使用:

日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,SpringBoot默认只会打印INFO以上级别的信息。

//  日志系统的原生使用
Logger logger = LoggerFactory.*getLogger*(MainController.class);

logger.warn("this is a warning");

// 通过Lombok的日志注解来实现,在springboot中使用的日志接口是Slf4j,
// 所以此时的注解为@Slf4j,写在需要使用日志的类上即可

log.error("This is a error"); // 打印一条错误日志

Logback日志实现的配置

  1. Logback的配置文件可以自定义
  2. 可以通过配置文件自行修改日志的输出格式和输出内容
  3. 可以自行选择日志的打印方式是控制台输出还是文件输出

**实现自定义日志配置文件:**自定义属于自己的日志配置文件,此配置文件会替代原本的配置文件,配置文件名称建议是 logback-spring.xml,可以导出 html 格式的日志文件

控制台打印日志:

<!-- 文件名称:logback-spring.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--  导入默认的配置文件,作为预设  -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />

    <!--  Appender作为日志打印器配置,这里命名随意  -->
    <!--  ch.qos.logback.core.ConsoleAppender是专用于控制台的Appender  -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>${CONSOLE_LOG_CHARSET}</charset>
        </encoder>
    </appender>

    <!--  指定日志输出级别,以及启用的Appender,这里就使用了我们上面的ConsoleAppender  -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

文件打印日志: