Slf4j绑定器(Binder)
- Slf4j是一套接口,需要具体的实现
- Binder提供了一个适配器,把实现和接口 绑定 起来了
- 调用关系是这样的:
用户调用slf4j的api -> slf4j找到桥接器 -> 通过桥接器调用真正的实现
Slf4j桥接器(Bridge)
- 在Slf4j问世以前,已经存在很多日志实现或者接口了
- Bridge提供了一种机制,可以在不改动日志调用的前提下,修改日志的实现
- 它的原理就是,使用一个桥接器包替换原来的日志包
- 桥接器包里把api调用都转向Slf4j
- 调用关系应该是这样的:
用户调用某个日志框架API(此时jar包已经被替换为桥接器包了) -> 桥接器调用slf4j的接口 -> slf4j找到桥接器 -> 通过桥接器调用真正的实现
- 可以看出,桥接器其实就是做了一次转发,剩下的流程和直接使用slf4j是一样的
更多知识
- 日志-slf4j桥接原理分析: https://blog.csdn.net/jpf254/article/details/80757041
- log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析: https://blog.csdn.net/kxcfzyk/article/details/38613861
- LogBack入门实践: https://segmentfault.com/a/1190000004693427
- LogBack官方文档:http://logback.qos.ch/manual/index.html