美文网首页
日志框架

日志框架

作者: 会走的桃子 | 来源:发表于2018-10-16 16:37 被阅读0次

日志门面

  • Apache Commons Logging (之前叫 Jakarta Commons Logging,JCL)
    当程序规模越来越庞大时,JCL的动态绑定并不是总能成功,在Sping官方文档中Not Using Commons Logging小节也提到因为算法问题引起。
  • SLF4J
    1. SLF4J解决了JCL动态绑定引发的问题,SLF4J在程序部署时静态绑定指定的日志工具。


      SLF4J绑定各类日志框架的原理图.png
    2. 排除现有Apache Commons Logging依赖的影响
      现在还有一个问题,假如你正在开发应用程序所调用的组件当中已经使用了 JCL 的,还有一些组建可能直接调用了 java.util.logging,这时你需要一个桥接器(名字为 XXX-over-slf4j.jar)把他们的日志输出重定向到 SLF4J。


      SLF4J的桥接器.png

      所谓的桥接器就是一个假的日志实现工具,比如当你把 jcl-over-slf4j.jar 放到 CLASS_PATH 时,即使某个组件原本是通过 JCL 输出日志的,现在却会被 jcl-over-slf4j “骗到”SLF4J 里,然后 SLF4J 又会根据绑定器把日志交给具体的日志实现工具。
      过程如下:
      Component(服务) -> log to Apache Commons Logging(JCL) -> jcl-over-slf4j.jar — (redirect) —> SLF4j —> slf4j-log4j12-version.jar —> log4j.jar —> 输出日志

注意:如果使用了log4j实现slf4j,添加log4j-over-slf4j桥接器,结果就是log4j —> slf4j —> log4j,输出日志命令被踢来踢去,此时要么去掉log4j-over-slf4j桥接器,要么替换slf4j的实现,比如换成logback,否则陷入死循环。

相关文章

网友评论

      本文标题:日志框架

      本文链接:https://www.haomeiwen.com/subject/vnjhzftx.html