Slf4j 整合 Logback

Slf4j 整合 Logback

Sl4j 全称 Simple Logging Facade for Java
它不是具体的日志解决方案,只服务于各种各样的日志系统。Slf4J是一个用于日志系统的Facade,允许最终用户在部署其应用时使用其所希望的日志系统。

Slf4J提供了统一的记录日志的接口,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统 (logback, log4j 等)

	<properties>
     	<!-- ... -->
        <slf4j-api.version>2.0.0</slf4j-api.version>
        <logback-classic.version>1.4.0</logback-classic.version>
    </properties>
 	<!-- ... -->
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>${slf4j-api.version}</version>
   </dependency>
   <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>${logback-classic.version}</version>
   </dependency>
   <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.13.2</version>
       <scope>test</scope>
   </dependency>

Logback 会尝试默认加载根目录下 logback.xml 文件 (单元测试首先会尝试加载 logback-test.xml, 其次 logback.xml

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestBase {
    private static Logger logger = LoggerFactory.getLogger(TestBase.class);

    @Test
    public void testAction() {
    	// // trace logback 此处不会输出。除非日志Level设定为TRACE
        logger.trace("test trace level");
        logger.debug("test debug level");
        logger.info("test info level");
        logger.warn("test warn level");
        logger.error("test error level");
    }
}

如下,没有TRACE级别日志,默认级别是从DEBUG

11:12:01.189 [main] DEBUG pr.iceworld.fernando.basicdemo.TestBase - test debug level
11:12:01.193 [main] INFO pr.iceworld.fernando.basicdemo.TestBase - test info level
11:12:01.193 [main] WARN pr.iceworld.fernando.basicdemo.TestBase - test warn level
11:12:01.193 [main] ERROR pr.iceworld.fernando.basicdemo.TestBase - test error level

增加logback.xml默认配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <property name = "ENCODER_PATTERN" value = "%d{yyyy-MM-dd  HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n"/>
    <!-- 控制台日志:输出全部日志到控制台 -->
    <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>${ENCODER_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- root Logger 配置-->
    <root>
        <level value="TRACE" />
        <appender-ref ref="console"></appender-ref>
    </root>
</configuration>

再次运行则会打印TRACE级别日志

2022-09-01  11:17:57.041 [main] TRACE pr.iceworld.fernando.basicdemo.TestBase - test trace level
2022-09-01  11:17:57.042 [main] DEBUG pr.iceworld.fernando.basicdemo.TestBase - test debug level
2022-09-01  11:17:57.042 [main] INFO  pr.iceworld.fernando.basicdemo.TestBase - test info level
2022-09-01  11:17:57.042 [main] WARN  pr.iceworld.fernando.basicdemo.TestBase - test warn level
2022-09-01  11:17:57.042 [main] ERROR pr.iceworld.fernando.basicdemo.TestBase - test error level

日志级别从低到高分别为:
TRACE < DEBUG < INFO < WARN < ERROR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值