`

java 日志各组件的关系

阅读更多

      java 的日志有好几个相关的东西,commons.logging(JCL),slf4j,log4j,logback,java.util.logging(JUL)....

      乍一看,一头雾水,那么从头说起。

      一开始,大家各写各的日志组件,比如,log4j,jul。。。这样不便于互换,所以出现了所谓的接口类,接口类本身不实现日志功能,日志功能还是由log4j,jul来干,接口类只是把日志请求转到真正的实现类上。所以,日志组件大致就分两类:接口组件,和实现组件。

      现在,接口组件有两个,一个是:commons.logging((JCL)), 另一个是:slf4j. slf4j更流行些。

      实现组件有:

             simplie Logger( commons.logging 自带的实现类) ;

             log4j;

             logback;

             java.util.logging(JUL),从JDK1.4起就包含。

      log4j 出现得最早,JUL 是sun 的,选择的人比较少。logback 据说是性能最好的。

      为了把接口组件能够调用到实现组件,一般来说还需要一个绑定组件,比如slf4j-log412.jar 就是用来让slf4j 调用 log4j,slf4j-jdk14.jar  就是让slf4j调用到 JUL的。

      所以,在自己写应用时,可以有两种选择,一种:直接就采用实现组件;另外一种是实现类加接口类,这样更多点灵活性。

      事情到这里,当然还没完,假如应用中有一个第三方库,其中使用的日志方案是与自己的应用的日志方案是不一样的,那么怎么办?比如自己的应用中是用slf4j + logback, 而第三方库是用log4j。那么,这时候需要一个桥接组件,log4j桥接到slf4j的是log4j-over-slf4j.jar。这样,第三方库的log4j 的请求会转到slf4j上,最后由logback来执行。

      转到slf4j的桥接组件如下:

      log4j-over-slf4j.jar ,   log4j 转到 slf4j.jar

      jul-to-slf4j.jar,            java.util.logging(JUL) 转到slf4j.jar

      jcl-over-slf4j.jar         commons.logging(JCL) 转到slf4j.jar

 

     大致就是这样,总结一下:

     1.接口组件来统一接口,

     2.由绑定组件将接口转到实现组件上,

     3.为了实现一个系统中有多个不同的日志组件,需要一些桥接组件。

 

      

分享到:
评论

相关推荐

    Java简易日志组件

    Java简易日志组件,附配置和示例Demo

    Java组件设计-日志组件

    日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件日志组件

    java常用日志组件介绍

    NULL 博文链接:https://huandieyangyang-126-com.iteye.com/blog/2064313

    java日志组件

    java日志组件

    Java日志组件间关系详解

    在本文里我们给大家整理了关于Java日志组件间关系相关基础知识,需要的朋友们跟着学习下。

    日志收集扫描组件

    定时扫描文件夹下面的所有文件更新,上传hbase

    java日志记录组件log4j-1.2.14和commons-logging-1.1.1

    本压缩包内附带log4j-1.2.14和commons-logging-1.1.1,Java日志记录行业标准组件。不要分啦。鄙视开源组件还收费的猥琐鬼。

    Java自定义日志模块实现

    自定义日志模块(接口及代理实现),而不直接使用第三方日志框架接口,避免在日志框架升级或者切换时,代码过多耦合。 这个举例说明一下: 比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j...

    一个java分布式日志组件

    一个java分布式日志组件,支持百亿级别,日志从搜集到查询,不用去文件中翻阅日志方便快捷,支持查询一个调用链的日志,支持链路追踪,查看调用链耗时情况,在分布式系统中也可以查询关联日志,能够帮助快速定位问题...

    NLOG 日志 开源组件 Visual Studio java

    NLOG 日志 开源组件 Visual Studio java是一款打日志的开源组件,里面己经封装好常见的打日志的函数。

    java日志组件的那些破事_.docx

    java日志组件的那些破事_.docx

    基于Java日志平台的访问链路追踪实战(1.01G)

    ---12-日志组件配置概述.mp4 ---13-jul配置文件与级别.mp4 ---14-jul打印级别与其他配置项.mp4 ---15-log4j配置文件与配置项.mp4 ---16-log4j的appender及pattern格式.mp4 ---17-logback配置及官方文档使用.mp4 ---...

    自定义日志脱敏组件,简单3 步完成 Spring Boot 的日志脱敏

    本组件基于logback+slf4j,暂不支持log4j,如需解决log4j的日志,可以参照本组件的思想去完成。 本组件支持的脱敏数据类型:八大基本类型及其包装类型、String类型、Map、List、JSON字符串、项目中的POJO对象。 注...

    Plumelog一个简单易用的java分布式日志组件

    Plumelog一个简单易用的java分布式日志组件。无代码入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志。基于elasticsearch作为查询引擎。高吞吐,查询效率高。全程不占应用...

    log日志组件总结

    Java关于log日志组件的详细说明及应用,通过本文档的学习,不仅可以对Java日志组件有更加深一层的认识,还能是自己的只是上一个台阶

    java企业级项目日志打印组件及使用方式

    java企业级日志打印组件,解压到本地修改mysql连接即可直接跑起来,整合到项目里面非常简单,可以参考靠链接:https://blog.csdn.net/qq_33313357/article/details/120786456

    基于Java日志平台的访问链路追踪实战(1.34G)

    ---12-日志组件配置概述.mp4 ---13-jul配置文件与级别.mp4 ---14-jul打印级别与其他配置项.mp4 ---15-log4j配置文件与配置项.mp4 ---16-log4j的appender及pattern格式.mp4 ---17-logback配置及官方文档使用.mp4 ---...

    Java组件设计

    第1章 组件设计概述 第2章 组件设计原则 第3章 预备知识 第4章 配置组件 第5章 Socket通信组件 第6章 日志组件 第7章 数据库访问组件 第8章 JSON转换器 第9章 权限组件

    毕设 一个java分布式日志组件,支持百亿级别,日志从搜集到查询

    matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...

Global site tag (gtag.js) - Google Analytics