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.
相关文章
相关标签/搜索