SLF4j使用

SLF4J:为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。(而其中 LogBack是SLF4J的实现类)。开发过程中 日志记录方法的调用应该调用日志抽象层里面的方法,而不应该直接调用日志的实现类。

package org.xixi.btg.logtest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogTest {
    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(LogTest.class);
        logger.info("This is my logtest!");
    }

}

注:每一个日志实现框架都有自己的配置文件。使用slf4j后,配置文件使用日志实现框架的配置文件(如使用了logback则使用logback的配置文件).

让系统中所有日志都统一到slf4j

1.将系统中其他日志框架先排除出去
2.用中间包替换原有的日志框架
3.导入slf4j其他实现

以SpringBoot日志关系为例

SpringBoot的启动依赖

  <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
   </dependency>

从依赖关系中可以看出SpringBoot使用spring-boot-starter-logging作为日志实现
从依赖关系中可以看出SpringBoot使用spring-boot-starter-logging作为日志实现

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
      <version>2.3.0.RELEASE</version>
      <scope>compile</scope>
    </dependency>

在这里插入图片描述
1)SpringBoot底层使用slf4j+logback的方式进行日志记录
2)SpringBoot将其他日志替换成了slf4j
3) 使用中间替换包(log4j-to-slf4j、jul-to-slf4j)的方式偷梁换柱
4)如果要引入其他框架,需要将该框架的默认日志依赖移除掉

指定配置

1.给类路径下放上每个日志框架自己的配置文件即可;SpringBoot将不使用其他默认配置

Logging SystemCustoomization
Logbacklogback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy
Log4j2log4j2-spring.xml,log4j.xml
JDK(java Util Logging)logging.properties

2.使用logback.xml,直接被日志框架识别
3.logback-spring.xml:日志框架将不直接加载日志配置项,由SpringBoot解析日志配置,有且只有加上-spring才可以使用SpringBoot的高级Profile功能,否则程序将报错。

<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="org.xixi.btg.app.config.MyFilter" />
        <!--
        日志输出格式:
			%d表示日期时间,
			%thread表示线程名,
			%-5level:级别从左显示5个字符宽度
			%logger{50} 表示logger名字最长50个字符,否则按照句点分割。 
			%msg:日志消息,
			%highlight,对子模式进行着色
			%n是换行符
        -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <springProfile name="dev">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            </springProfile>
            <springProfile name="!dev">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %logger{50} - %msg%n</pattern>
            </springProfile>
        </layout>
    </appender>

切换日志框架

1.先将框架中已有的logback去除引用
2.引入对应的其他日志框架适配包(如slf4j-log4j12)
3.添加对应日志实现框架的配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值