Java日志组件间关系

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java日志组件间关系脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、 总览

文章不对日志组件进行优劣评价,只是对关系进行对比。在日志中组件中存在这样的几种关系, 这几种关系理解清楚, 有助于我们对日志的引入和使用。

clipboard.png

二、 日志门面

日志门面就是指直接引入我们程序中进行记录日志的日志组件(例如SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统,它需要下面的具体日志实现来进行记录日志, 而日志实现也需要一个门面来与日志系统进行连接, 可以说日志门面就是实现与系统之间的一个连接器),作为日志门面的这些组件会在程序中直接依赖, 上图中就列举的几种常见的日志门面的组件。像一些软件直接回默认使用一些组件, 比如SPRing使用的就是commons-LOGging, activITi使用的日志门面就是slf4j, 其他的软件也都会选用自己认为好用的日志门面。

三、 日志实现

除了log4j既是门面又是实现之外, commons-logging和slf4j(这些日志门面) 都是不能直接打印日志的, 都需要依赖一个日志实现来打印日志,上图中也举了几个日志实现。

四、桥接方式

slf4j默认和logback做了一些桥接的处理,那么桥接的作用是什么呢, 假如我想使用slf4j做为实现的门面,然而同时我想使用log4j作为真正的日志实现,这个时候就需要slf4j-logrj12 jar包, 现在应该可以理解桥接方式了。

五、 改变依赖

这里的作用是为了避免一些冲突, 例如在这样的场景下,我们使用spring做为开发,而我们开发的软件要使用的是slf4j作为日志门面,这个时候因为Spirng默认使用的是commons-logging作为日志门面,这个时候就会发生一些冲突, 所以我们可以引入jcl-over-slf4j, 通过这个组件把commons-logging覆盖掉, 为了把历史软件内部的依赖覆盖掉, 就可通过这个方式改变依赖。

脚本宝典总结

以上是脚本宝典为你收集整理的Java日志组件间关系全部内容,希望文章能够帮你解决Java日志组件间关系所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。