Logback架构

我于2015年下半年曾读过Logback(1.1.3)的源码。记得一开始读时非常吃力,不知从何处入手,很多东西觉得困惑,不得不大量打印其中细节才能搞懂。

我开始学着阅读官方英文文档,研究配置文件,尝试使用API并且窥视其实现,并做了一些笔记和画图。


Logback架构_第1张图片
时序图
Logback架构_第2张图片

第二张图是自己手绘。在阅读源码的过程中,不能胡子眉毛一把抓,而是应该把注意力放在核心类上,而不是那些辅助类上。把核心类的核心API搞懂之后,整个架构就差不多搞懂了,其他的类只是补充和完善。Logback的核心类有 StaticLoggerBinder, LoggerFactory, LoggerContext, Logger, Appender, Encoder等。

从上图可以发现,Logback架构可分为两大部分:

1)调用委托链:Logger -> Appender -> Encoder

2)初始化和解析配置文件(用到反射技术)

还可以发现LoggerFactory是入口类,LoggerContext是核心类,StaticLoggerBinder把logback和slf4j联系起来。

当时反复参考过以下资料:

Logback Manual

slf4j初始化绑定源码分析

读logback源码系列文章(一)--对接slf4j - 女儿3岁了还是要继续钻研技术 - ITeye博客

你可能感兴趣的:(Logback架构)