SLF4J 和 Logback 在 Maven 項目中的使用方法

「博客搬家」 原地址: 簡書 原發表時間: 2017-04-17html

本文介紹 SLF4J 和 Logback 在 Maven 項目中的用法,包括日誌框架的依賴、使用,以及 XML 配置文件的引入。本文的精華內容翻譯 Base22,文章來源見文末。java

1. 將框架 SLF4J & Logback 添加到 Maven 項目中。

經過簡單的幾個步驟,便可將 SLF4J 和 Logback 添加到 Maven 項目中。web

1.1 將依賴添加到 Maven 的 POM.xml 中

直接在 Maven Repository 中搜索 Logback, 選擇使用量最大的「Logback Classic Module」, 將該依賴添加到 POM.xml 中,例如:api

<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
複製代碼

將會在項目中導入以下類庫:bash

  • logback-classic.x.x.x.jar
  • logback-core.x.x.x.jar
  • slf4j-api-x.x.x.jar

1.2 使用 XML 配置文件初始化

將 XML 配置文件 logback.xmllogback-test.xml 按照如下層次結構添加到項目中:app

  • src
    • main
      • resources
        • logback.xml
    • test
      • resources
        • logback-test.xml

其中,兩配置文件的內容以下:框架

** logback.xml **spa

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </encoder>
    </appender>

    <logger name="com.base22" level="TRACE"/>

    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>
複製代碼

** logback-test.xml **翻譯

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>
複製代碼

logback.xml 中能夠看到,包 com.base22 的 level 是 TRACE, 經過設置 logger 節點,能夠指定特定包的 level。debug

除了特定包以外,項目的日誌 level 均由 root 節點指定。

2. Log 的基本使用

使用 Log 時,須要在每一個 class 文件中進行初始化操做。

首先導入以下內容:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
複製代碼

以後可以使用以下語句引入 log :

static final Logger logger = LoggerFactory.getLogger(MyClassName.class);
複製代碼

其中 MyClassName 改成該類的類名。

亦可在類的構造方法中使用以下語句初始化:

Logger logger = LoggerFactory.getLogger(getClass());
複製代碼

以後可在方法中調用以下語句進行 log 操做:

logger.debug("debug");
logger.info("info");
複製代碼

3. 日誌的級別 (level) 參考

日誌的級別 (level) 由低到高排列以下:

  • trace
  • debug
  • info
  • warn
  • error

4. 參考連接

  1. How to setup SLF4J and LOGBack in a web app - fast
  2. This appender no longer admits a layout as a sub-component, set an encoder instead.
相關文章
相關標籤/搜索