门面之下,日志之上SLFJ.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
门面之下,日志之上-SLF4J 2021-09-14 每一位程序员自从屏幕输出的第一条Hello World那一刻开头,便从今与日志结下了不解之缘。 SLF4J框架的定义 Java 简易日志门面(Simple Logging Facade for Java,缩写SLF4J),是一套包装 Logging 框架的界面程式,以外观模式(门面模式)实现。可以在软件部署的时候打算要使用的 Logging 框架,目前次要援助的有 Java Logging API、log4j 及 logback 等框架。以 MIT 授权方式发布。 SLF4J 的作者就是 log4j 的作者 Ceki Gülcü,他宣称 SLF4J 比 log4j 更有效率,而且比 Apache Commons Logging (JCL) 简约、稳定。 与log4j对比 我们最长用的日志实现框架莫过于 log4j 了,现在来简约对比下 log4j 和 slfj,其实他们俩实质上是两个不同的东西,我们来对比使用上的区分。 1. log4j 供应 TRACE,DEBUG,INFO,WARN,ERROR 及 FATAL 六种纪录等级,但是 SLF4J 认为 ERROR 与 FATAL 并没有实质上的差别,所以拿掉了 FATAL 等级,只剩下其他五种。 2. log4j 间接的在鼓舞程序员使用 string 相加的写法,而 slf4j 就不会有这个问题,你可以使用: 1 logger.error({}?is?userid,userid); 3. 使用 slf4j 可以便利的使用其供应的各种集体的实现的 jar。(类似commons-logger)下面会着重引见。 4. 供应字串内容替换的功能,会比较有效率,说明如下 1 2 3 4 5 6 7 8 9 10 //?传统的字符串产生方式,假如没有要记录?Debug?等级的信息,就会铺张时间在产生不必要的信息上? logger.debug(There?are?now??+?count?+??user?accounts:??+?userAccountList);? ? //?为了避开上述问题,我们可以先检查是不是开启了?Debug?信息记录功能,只是程序的编码会比较简单? if?(logger.isDebugEnabled())?{? ????logger.debug(There?are?now??+?count?+??user?accounts:??+?userAccountList);? }? ? //?假如?Debug?等级没有开启,则不会产生不必要的字符串,同时也能保持程序编码的简约 logger.debug(There?are?now?{}?user?accounts:?{},?count,?userAccountList); SLF4J全体架构引见说明,先来看两幅图 SLF4J第一幅图: 第一层,1- 应用层,没什么说的,就是我们各自的应用。 其次层,2- slf4j 供应的 api,统一依靠 slf4j-api.jar,这一层之下,就是自在层了,可以看到几乎包括了全部的我们生疏的日志实现。 第三层,3- 这是两个桥接器或者是适配器,通过名字就可以看出来是,对应 log4j 和 jdk 自带的日志。左边的 slf4j-log4j12.jar 桥接器看名字就晓得是 slf4j 到 log4j 的桥接器,左边的 slf4j-jdk14.jar 就是 slf4j 到 Java 原生日志实现的桥接器了。他们俩之下,第四层,也就是具体的实现。4- 这三个不需要桥接器,logback 本人实现了slf4j,听说 logback 的作者跟 slf4j 是同一个人。左边的两个是 slf4j 自带的本身实现。 第四层,5- 分别是 Apache 的 log4j 和 jdk 本身的 java.util.logging.Logger 实现,jdk 环境里面包含了这个类,因而也不需要特殊引入。 SLF4J其次幅图: 这张图和第一幅图,是相反的,也就是,将其他日志的 api 转调到 slf4j 上面,举个例子,比如我们的应用系统里面目前使用了 log4j,这个时候我们想升级日志,不用 log4j了,想接受 logback,就有一种方法了,就是我们将 log4j 转调到 slf4j 上面,通过 slf4j 的 api 调用到 logback 上去。看下面这个场景: 场景引见:如使用 log4j1 的 API 进行编程,但是想最终通过 logback 来进行输出,所以就需要先将 log4j1 的日志输出转交给 slf4j 来输出,slf4j 再交给 logback 来输出。将 log4j1 的输出转给 slf4j,这就是 log4j-over

文档评论(0)

136****7795 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档