INDEX
- 总览图
- 上图的说明
总览图
上图的说明
日志体系的结构大约可以概括为
- 日志门面
- 日志绑定层
- 日志实现
- 日志桥接层
slf4j 是 日志门面,所谓日志门面可以理解为日志总接口
slf4j-log4j、log4j-slf4j-impl 是 日志绑定层,日志绑定层的作用是将 日志门面 绑定到 日志实现 上
log4j-1.xx、log4j-2.xx 是 日志实现,实际的提供日志功能
log4j-over-slf4j、log4j-to-slf4j 是 日志桥接层,日志桥接层的作用是将 日志实现 桥接回 日志门面 上,并以此为基础进行再次绑定
如上图,绑定和桥接均有方向标识,在实际项目中,按方向成环即死。
以 slf4j-api --> slf4j-log4j --> log4j-1.xx --> log4j-over-slf4j --> slf4j-api 为例:
- slf4j-api:我连着 slf4j-log4j,实际功能找 log4j-1.xx
- log4j-1.xx:我连着 log4j-over-slf4j ,实际功能得找门面,让它分配
- slf4j-api:我连着 slf4j-log4j,实际功能找 log4j-1.xx (•́へ•́╬)
- log4j-1.xx:我连着 log4j-over-slf4j ,实际功能得找门面,让它分配 (。•ˇ‸ˇ•。)
- slf4j-api:我连着 slf4j-log4j,实际功能找 log4j-1.xx [○・`Д´・ ○]
- log4j-1.xx:我连着 log4j-over-slf4j ,实际功能得找门面,让它分配 (╯‵□′)╯︵┻━┻
日志桥接层 的作用:日志桥接层 引用了对应的 日志实现 的依赖,并持有其所有关键全类名,会使这些类连接会门面
比如 log4j-to-slf4j 可以将 org.apache.log4j.logging.Logger 连接回 org.slf4j.Logger