集成日志框架
2025年5月19日大约 1 分钟
| 日志门面(抽象层) | 日志实现 |
|---|---|
| SLF4J | LOG4J2 | LOGBACK |
SLF4J:日志门面(抽象层),不实现日志功能,集成其他框架;任何日志框架(除LOGBACK)要适配SLF4J的话都要提供一个适配器
LOGBACK:日志实现
SLF4J:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> </dependency>LOGBACK:
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency>
LogBack初始化
- logback会在类路径下找名为
logback-test.xml的文件 - 如果没有找到,logback会继续寻找名为
logback.groovy的文件 - 如果没有找到,logback会继续寻找名为
logback.xml的文件 - 如果没有找到,将会通过JDK提供的
ServiceLoader工具类路径下的文件,文件实现了Configurator接口的实现类的全限定类名 - 如果都没有成功,logback会通过
BasicConfigurator为自己进行默认配置
LogBack日志打印级别
TRACE < DEBUG < INFO < WARN < ERROR
TRACE:跟踪级别
DEBUG:调试级别(默认)
INFO:信息级别
WARN:警告级别
ERROR:异常级别
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="Debug">
<appender-ref ref="STDOUT"/>
</root>
</configuration>上面为基本的logback配置文件,root标签的意思所有的日志的级别,可以使用logger标签控制指定的(类 | 包)的级别(logger跟root同级)
<logger name="xx.xxx.xxx" level="Debug"/>