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

本文详细解析了SLF4J如何在编译期间绑定日志框架及Logback配置文件的加载流程。阐述了SLF4J在找不到或找到多个日志框架时的警告信息,并介绍了在classpath中查找配置文件的顺序。此外,还提到了SLF4J与Log4j12及Logback之间的潜在冲突解决方案。

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

1)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异常

 

 

 

 

2)https://blog.youkuaiyun.com/zhuyucheng123/article/details/51803852

 

 

api:

  • commons-logging
  • log4j1
  • jdk-logging
  • slf4j

impl:

  • log4j1
  • log4j2
  • jdk-logging
  • logback

文章中有大量实例

 

 

3)演化:

https://zhuanlan.zhihu.com/p/24272450

 

 

4)https://blog.youkuaiyun.com/u011372108/article/details/83824274

这个链接解决了slf4j-log4j12与logback的冲突,因为同时使用了log4j与logback实现日志

转载于:https://www.cnblogs.com/silyvin/p/10433001.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值