Logback 基础配置文件

来自姬鸿昌的知识库
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1iJ411H74S?p=27

Logback 配置

Logback 会依次读取以下类型的配置文件:

  • logback.groovy
  • logback-test.xml
  • logback.xml 如果均不存在会采用默认配置


Logback 组件之间的关系

  1. Logger:日志的记录器,把它关联到应用对应的 context 上后,主要用于存放日志对象,也可以定义日志类型、级别
  2. Appender:用于指定日志输出的目的地,目的地可以是控制台、文件、数据库等等
  3. Layout:负责把事件转换成字符串,格式化地输出日志信息。在 Logback 中 Layout 对象被封装在 encoder 中


基本配置信息

logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!--
        配置集中管理属性
        可以直接该属性的 value 值
        格式:${name}
    -->
    <property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n"></property>
    <!--
    日志输出格式:
        %-5level 日志级别
        %d{yyyy-MM-dd HH:mm:ss.SSS} 时间
        %c 类的全限定名
        %M 方法名
        %L 行号
        %thread 线程名称
        %m 或者 %msg 为信息
        %n 换行
    -->

    <!-- 控制台日志输出的 appender -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 控制输出流对象 默认 System.out 改为 System.err -->
        <target>System.err</target>
        <!-- 日志消息格式配置 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <!-- root logger 配置 -->
    <root level="ALL">
        <appender-ref ref="console"></appender-ref>
    </root>
    
</configuration>
LogbackTest.java
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogbackTest {

    public static final Logger LOGGER = LoggerFactory.getLogger(LogbackTest.class);

    // 快速入门
    @Test
    public void test() {
        // 日志输出
        LOGGER.error("error");
        LOGGER.warn("warn");
        LOGGER.info("info");
        LOGGER.debug("debug");
        LOGGER.trace("trace");
    }

}
[ERROR] 2023-02-27 11:34:05.426 io.github.jihch.LogbackTest test 15 [main] error
[WARN ] 2023-02-27 11:34:05.428 io.github.jihch.LogbackTest test 16 [main] warn
[INFO ] 2023-02-27 11:34:05.428 io.github.jihch.LogbackTest test 17 [main] info
[DEBUG] 2023-02-27 11:34:05.428 io.github.jihch.LogbackTest test 18 [main] debug
[TRACE] 2023-02-27 11:34:05.428 io.github.jihch.LogbackTest test 19 [main] trace