从源码来理解slf4j的绑定,以及logback对配置文件的加载

Posted silyvin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从源码来理解slf4j的绑定,以及logback对配置文件的加载相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/youzhibing/p/6849843.html

 

编译期间,完成slf4j的绑定已经logback配置文件的加载。slf4j会在classpath中寻找org/slf4j/impl/StaticLoggerBinder.class(会在具体的日志框架如log4j、logback等中存在),找到并完成绑定;同时,logback也会在classpath中寻找配置文件,先找logback.configurationFile、没有则找logback.groovy,若logback.groovy也没有,则找logback-test.xml,若logback-test.xml还是没有,则找logback.xml,若连logback.xml也没有,那么说明没有配置logback的配置文件,那么logback则会启用默认的配置(日志信息只会打印在控制台)。

  slf4j只能绑定某一个特定的日志框架,若没有绑定,则会有如下警告,说明没有找到合适的日志框架

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

  若找到多个日志框架,slf4j会发出警告,并在运行时抛出NoClassDefFoundError异常

以上是关于从源码来理解slf4j的绑定,以及logback对配置文件的加载的主要内容,如果未能解决你的问题,请参考以下文章

Java日志框架SLF4J和log4j以及logback的联系和区别

Maven类路径错误多个SLF4J绑定

在 SLF4J/Logback 中使用标记的最佳实践

日志之slf4j和logback日志系统

使用SLF4J和LOGBACK (一 : 基本使用)

SLF4J:类路径包含多个 SLF4J 绑定 slf4j-test vs logback-classic