springboot logback高级特性使用

文章介绍了日志的不同级别,如trace、info、debug、warn、error和fatal,并展示了如何在Springboot项目中创建自定义的日志转换器,用于在logback配置中获取和显示traceId。同时,文中还提到了多环境配置,如开发、测试和生产环境的logback设置,以及如何针对不同环境调整日志级别。此外,还提及了mapper层SQL日志的DEBUG级别输出配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、业务需求

日志级别的分类

日志的级别分为:

  1. trace:微量,少许的意思,级别最低
  2. info:普通的打印信息
  3. debug:需要调试时候的关键信息打印
  4. warn:警告,不影响使⽤,但需要注意的问题
  5. error:错误信息,级别较⾼的错误日志信息
  6. fatal:致命的,因为代码异常导致程序退出执行的事件

日志级别的顺序:

二、实现

只在文件内部使用,实现步骤:

      ①编写继承了ch.qos.logback.classic.pattern.ClassicConverter类的方法

      ②重写convert()方法,将需要用到的变量返回即可

      ③在xml配置文件中引入,并使用

package net.company.springboot.logback.classic;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import org.apache.skywalking.apm.toolkit.trace.TraceContext;

public class TraceConverter extends ClassicConverter {
  public TraceConverter() {
  }

  public String convert(ILoggingEvent event) {
    String traceId = TraceContext.traceId();
    return null != traceId ? traceId : "-";
  }
}

logback.xml

项目的 resources 资源目录下新建 logback 日志配置文件(logback.xml )

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="false" scanPeriod="60000" debug="false">
    <!-- 获取 traceId 配置类-->
    <conversionRule conversionWord="trace" converterClass="net.company.springboot.logback.classic.TraceConverter"/>

    <!-- 自定义 logback 日志格式-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}|%level|%trace|[%thread] %logger{36} -%msg%n</Pattern>
        </encoder>
    </appender>

    <root level="info">
        <!-- 控制台打印 -->
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

多环境配置

在一个基于Spring boot开发的项目里,常常需要有多套环境的配置:开发,测试以及产品。使用springProfile 可以分别配置开发(dev),测试(test)以及生产(prod)等不同的环境

<!-- 开发环境和测试环境 -->
<springProfile name="dev,test">
    <logger name="com.atguigu" level="INFO">
        <appender-ref ref="CONSOLE" />
    </logger>
</springProfile>
<!-- 生产环境 -->
<springProfile name="prod">
    <logger name="com.atguigu" level="ERROR">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </logger>
</springProfile>

打印sql

logging:
  config: classpath:logback.xml
  level:
    net:
      company:
        test:
          dao:
            mapper: debug   #mapper层 sql日志 DEBUG级别输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值