《slf4j官方文档》传统桥接API-Java-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:171回复:0

 《slf4j官方文档》传统桥接API

楼主#
更多 发布于:2016-05-20 18:52

《slf4j官方文档》传统桥接API

原文地址

一般,有些组件取决或依靠Logging

API,而不是SLF4J。你也能够假设不久的将来这些组件不会转成为SLF4J。为了处理这种状况,SLF4J装载了几个能够重定向调用的桥接模块,这些模块使得log4j,

JCL and java.util.logging APIs

体现得似乎他们是SLF4J的替代。下图论述了这个主意。

请留意在你操控下的源代码,你真得应当用slf4j-migrator。本页所描绘的根据二进制的处理方案是适合超出你操控规模的软件。

Jakarta Commons

Logging(JCL)逐步搬迁到SLF4J

jcl-over-slf4j.jar

为了简易从JCL到SLF4J的搬迁,SLF4J分步包含了jar文件jcl-over-slf4j.jar。这个jar文件是用来替代JCL1.1.1版别的。它完成了JCL的公共API,但它用的是SLF4J的底层,因而命名为“SLF4J上的JCL”.

SLF4J上的JCL完成答应你逐步搬迁到SLF4J,特别是假如一些软件依靠包在可见的将来持续运用JCL.你能够当即享受SLF4J可靠性的好处,一起也坚持向后兼容性。只需将common-logging.jar更换为jcl-over-slf4j.jar。随后,底层日志结构的挑选将由SLF4J完结而不是JCL,但

[没有摧残JCL类加载的头疼]。底层日志结构能够是任何SLF4J支撑的结构。一般,用jcl-over-slf4j替代common-logging.jar将当即地、持久地处理commons日志有关的类加载疑问。

Slf4j-jcl.jar

有些我们的用户在变换到SLF4J

API后意识到在一些环境下,运用JCL是强行的,运用SLF4J也许成为疑问。在这种不常见但很主要的状况下,SLF4J供给一个JCL绑定,在slf4j-jcl.jar中能够找到。JCL绑定将一切的由SLF4J发生的日志调用分发给JCL。这么,假如由于某些因素一个已存在的运用有必要运用JCL,运用的有些仍能够用通明的办法编码到大的运用环境,而不是SLF4J

API。你挑选的SLF4J API将在运用的其余有些不可见,这么你能够持续运用JCL.

jcl-over-slf4j.jar不能和

slf4j-jcl.jar混淆

SLF4J上的JCL,

也即是jcl-over-slf4j.jar,在JCL需求支撑向后兼容的因素下,它派上了用场。与JCL联络,它能够处理这些疑问,没有一定要采取SLF4J

API,推迟到一段时间后再作决定。

另一方面,在你的组件现已采用了SLF4J

API后,slf4j-jcl.jar是有用的,你需求把组件嵌入到更大的运用环境中,在这个环境下JCL表面上是需求的。在没有打乱运用的更大有些,你的软件组件仍能够运用。实际上,slf4j-jcl.jar将分发一切的日志决定给JCL,那样组件依靠的SLF4J

API将对更大的全体通明。

留意jcl-over-slf4j.jar和slf4j-jcl.jar不能一起布置。前一个jar文件将致使JCL分发日志体系的挑选指令给SLF4J,后一个jar文件将致使SLF4J分发日志体系的挑选指令给JCL。将致使无限循环

log4j-over-slf4jslf4j上的log4j

SLF4J装载了一个叫log4j-over-slf4j的模块。它答应log4j用户搬运已存在的运用到SLF4J,一起不必改动一行代码,只需求简单地用log4j-over-slf4j.jar替代log4j.jar。

它怎么作业?

log4j-over-slf4j模块包含了大有些运用的log4j类的替代类,是org.apache.log4j.Category,

org.apache.log4j.Logger, org.apache.log4j.Priority,org.apache.log4j.Level,

org.apache.log4j.MDC, and

org.apache.log4j.BasicConfigurator.这些被替代类从头把一切的作业指向有关的SLF4J类。

在你自个的运用中运用log4j-over-slf4j,第一部是定位,然后用log4j-over-slf4j.jar替代log4j.jar。留意你仍需求SLF4J绑定,它是log4j-over-slf4j.jar彻底作业的根基。

在大有些状况下,为了从log4j搬迁到SLF4J,一切的花费仅仅更换jar文件。

留意由于这个搬迁,log4j装备文件将不再被取得。假如你需求搬迁log4j.properties文件到logback,log4j变换器会给协助。装备logback,请参考它的手册

何时作业?

当运用调用不存在于桥接中log4j组件时,log4j-over-slf4j模块将不会作业。比如,当运用代码直接引证log4j输出端,过滤器或者特点装备器,log4j-over0slf4j将不会彻底替代log4j。但是,当log4j经过装备文件装备后,成为log4j.properties

或 log4j.xml,log4j-over-slf4j模块应当仅仅作业杰出。

体系开支如何?

直接运用log4j-over-slf4j替代log4j的体系开支相对小许多。之前现已给出,log4j-over-slf4j当即分配一切的作业给SLF4J,

CPU的体系开支在几纳秒内应当忽略不计。有个内存体系开支,对应于每个日志器的hashmap的进口,这个关于有几千个日志器的大运用来说是能够承受的。另外,假如你挑选logback作为底层日志体系,已知logback比log4j更快一起更节省内存,运用logback直接替代log4j的增益应当抵偿了运用log4j-over-slf4j的过度花费。

log4j-over-slf4j.jar

和slf4j-log4j12.jar二者不能一起存在

slf4j-log4j12.jar是给SLF4J供给log4j绑定,这将迫使一切的SLF4J的调用分配给log4j。log4j-over-slf4j.jar将反过来讲一切的log4J

API调用分配给SLF4J等效的办法。假如二者一起存在,SLF4J调用将分发给log4j, 一起log4j调用重定向到SLF4J,致使进入一个死循环 。

jul-to-slf4j bridge(jul到slf4j桥接)

jul-to-slf4j模块包含java.util.logging(jul)handler.叫做SLF4JBridgeHandler,它将一切接收到的jul记载发送到SLF4J

API。请看SLF4JBridgeHandler javadocs运用辅导。

留意功能与其他桥接模块相反的名称为jcl-over-slf4j和log4j-over-slf4j,二者重完成了JCL和独立地log4j,jul-to-slf4j模块没有重完成java.util.logging,由于java.*下的包命名空间不能更换。反而,jul-to-slf4j等价地变换LogRecord

目标到它们的SLF4J中。请留意变换工程致使的构建LogRecord实例的花费,而不是SLF4J日志器关于给定的等级是否已禁用了。因而,jul-to-slf4j变换也许严重地添加了禁用日志声明的体系开支(60倍或6000%),一起明显地影响敞开日志声明的功能(大体上添加20%)。在LevelChangePropagator的协助下,logback0.9.25版别也许彻底消除禁用日志声明致使的60倍变换体系开支。

假如你关怀运用的功能,只要当下列2种状况是真的时,是用SLF4JBridgeHandler是适宜的:

几乎没有u.l日志声明在运转

2.已装置LevelChangePropagator

jul-to-slf4j.jar 和slf4j-jdk14.jar 二者不能一起存在

slf4j-jdk14.jar是jul到SLF4J的绑定,将强行SLF4J的调用分配给jul。另一方面,jul-to-slf4j.jar,加上SLF4JBridgeHandler的装置,加上SLF4JBridgeHandler的装置,经过调用“SLF4JBridgeHandler.install()“将jul记载发送给SLF4J。因而,假如两个jar文件一起存在(SLF4JBridgeHandler已装置),slf4的调用将被分配给jul,

jul记载将发送到SLF4J,致使一个死循环。

优质IT资源分享社区为你提供此文。

本站有大量优质Java教程视频,资料等资源,包含java基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。

java教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客