1. 程式人生 > >SLF4J 和 Logback 在 Maven 專案中的使用方法

SLF4J 和 Logback 在 Maven 專案中的使用方法

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

1. 將框架 SLF4J & Logback 新增到 Maven 專案中。

通過簡單的幾個步驟,即可將 SLF4J 和 Logback 新增到 Maven 專案中。

1.1 將依賴新增到 Maven 的 POM.xml 中

<!-- 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>

將會在專案中匯入如下類庫:

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

1.2 使用 XML 配置檔案初始化

將 XML 配置檔案 logback.xml

logback-test.xml 按照以下層次結構新增到專案中:

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

其中,兩配置檔案的內容如下:

logback.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> <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。

除了特定包之外,專案的日誌 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. 參考連結