阅读分析 slf4j 的日志源码,发现其中涵盖了许多知识点和优秀的设计,关键它们都是活生生的实践案例。这一类项目统称桥接器项目,针对不同的日志框架有不同的桥接器项目。然后,通过 SLF4JServiceProvider 的实现类来获取日志相关的具体工厂类对象,进而进行日志功能的处理。针对此问题,slf4j 提供了 slf4j-log4j12 这类桥接器的过渡项目。log4j1.2.12 之前并没有 Level.TRACE,所以会抛出异常,并打印日志信息。在 Log4j12ServiceProvider 中进行了 Log4jLoggerFactory 的实例化操作,也就直接 new 出来一个对象。而构造的 Log4jLoggerAdapter 类很显然使用了适配器模式,它内部持有了 log4j 的 Logger 对象,自身又实现了 slf4j 的 Logger 接口。本文通过源码跟踪,逐步分析了 slf4j 项目中桥接器项目的运作机制,其中还涉及到了 SPI 机制、版本及依赖检查小技巧、桥接器运作本质等。
暂无评论