集成日志框架
2024年11月17日大约 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"/>