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

本文介绍 SLF4J 和 Logback 在 Maven 项目中的用法,包括日志框架的依赖、使用,以及 XML 配置文件的引入。本文的精华内容翻译 Base22,文章来源见文末。

1. 将框架 SLF4J & Logback 添加到 Maven 项目中。

通过简单的几个步骤,即可将 SLF4J 和 Logback 添加到 Maven 项目中。

1.1 将依赖添加到 Maven 的 POM.xml 中

直接在 Maven Repository 中搜索 Logback, 选择使用量最大的「Logback Classic Module」, 将该依赖添加到 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.xmllogback-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. 参考链接

  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.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,777评论 19 139
  • 在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此...
    Java架构阅读 8,810评论 2 41
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,114评论 6 342
  • 写Java也有一段时间了,一直都有用slf4j log4j输出日志的习惯。但是始终都是抱着“拿来主义”的态度,复制...
    Minimumy阅读 5,212评论 1 7
  • 大部分内容均来自Logback官网。 Logback Logback是一种日志框架,它是由log4j和SLF4J日...
    CoderShangfeng阅读 4,071评论 0 0