`

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简易日志组件是开发者在进行Java编程时用于记录应用程序运行状态、错误信息以及调试信息的重要工具。在Java世界中,日志系统扮演着至关重要的角色,它可以帮助开发者追踪程序运行的问题,优化性能,以及在出现...

    java常用日志组件介绍

    本文将详细介绍几个常见的Java日志组件,包括它们的特点、使用场景和配置方法。 首先,让我们来看一下`log4j`。它是Apache组织的一个开源项目,广泛应用于Java应用程序中。Log4j提供了丰富的日志级别(如DEBUG, ...

    Java组件设计-日志组件

    本文将深入探讨Java中的日志组件及其重要性。 首先,我们要理解日志的基本概念。日志是程序运行过程中的事件记录,包括但不限于错误信息、警告消息、调试信息、用户操作记录等。这些信息有助于在出现问题时快速定位...

    java日志组件

    java日志组件

    Java日志组件间关系详解

    本文将深入解析Java日志组件之间的关系,以便于理解和选择适合的日志解决方案。 首先,我们要了解日志组件的总览。在Java世界里,有多个日志组件,如Log4j、Logback、Java Util Logging (JUL)、SLF4J(Simple ...

    java中常用的9种组件

    Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件用于构建桌面应用程序。在Swing中,组件是构建用户界面的基本元素,每个组件都有特定的功能和用途。以下是Java Swing中最常用的9种组件,以及...

    java 日志的数据脱敏的实现方法

    2. **利用日志组件过滤**: 另一个方法是通过日志框架(如Log4j或SLF4J)设置过滤器,匹配并替换特定的敏感关键字。但这可能会导致性能下降,因为每个日志输出都要进行正则匹配。 为了克服上述两种方法的局限,...

    日志收集扫描组件

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

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

    Java日志记录是开发过程中必不可少的部分,用于跟踪应用程序运行时的行为,排查问题,以及收集性能数据。Log4j和Commons-Logging是两个在Java世界中广泛使用的日志记录库。 1. **Log4j**: Log4j是Apache组织开发的...

    一个java分布式日志组件

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

    java开发工具组件包

    在Java开发过程中,工具类和组件包扮演着至关重要的角色,它们可以极大地提高开发效率,减少重复工作,并提供一些常用功能的便捷实现。本压缩包“java开发工具组件包”显然是一个集合了开发者在日常工作中经常使用的...

    Java自定义日志模块实现

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

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

    本文将探讨几个重要的Java日志组件,包括它们之间的关系、如何进行配置以及如何处理与遗留日志框架的兼容性问题。 首先,SLF4J(Simple Logging Facade for Java)是一个日志门面,类似于Apache Commons Logging,...

    NLOG 日志 开源组件 Visual Studio java

    这款组件的出现使得在Visual Studio环境下进行Java或.NET编程时,对日志的处理变得更加便捷和灵活。NLOG不仅支持C#,还特别针对Java开发者提供了兼容性,使得跨平台的日志管理成为可能。 在日志系统中,NLOG的核心...

    java日志jar包

    Java日志库是Java开发中不可或缺的部分,它们帮助开发者记录应用程序的运行状态、错误信息以及调试数据。在Java世界里,日志框架的选择多种多样,其中log4j、Commons Logging和SLF4J(Simple Logging Facade for ...

    java邮件发送组件

    Java邮件发送组件是Java开发中用于发送电子邮件的工具,它使得开发者能够轻松地在应用程序中实现邮件功能。Java Mail API是实现这一功能的核心库,它提供了丰富的接口和类,允许程序进行邮件的创建、发送以及处理。...

    log日志组件总结

    在Java开发中,日志组件扮演着至关重要的角色,它帮助开发者记录程序运行时的信息,以便于调试、问题排查和性能分析。本文将深入探讨Java中的log日志组件,包括JDK内置的日志(jdkLog)、Apache的Commons Logging...

    Java日志控件

    Java日志控件是一种在Java EE环境中用于日志监控的组件,它专注于提供对应用程序日志的高效管理和控制。此控件设计的核心理念是通过切面编程(Aspect-Oriented Programming, AOP)来实现日志拦截,允许开发者在不...

    从日志文件组件看java与c++的不同

    Glog是Google开源的一个C++日志库,它提供了类似Java日志框架的功能,如可配置的日志级别和输出目的地。Glog的特点包括异常安全、线程安全和堆栈跟踪,这对于C++开发者来说非常有用。Glog_test.cc 文件很可能是对...

Global site tag (gtag.js) - Google Analytics