一、业务需求
日志级别的分类
日志的级别分为:
- trace:微量,少许的意思,级别最低
- info:普通的打印信息
- debug:需要调试时候的关键信息打印
- warn:警告,不影响使⽤,但需要注意的问题
- error:错误信息,级别较⾼的错误日志信息
- 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级别输出