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日志组件,包括它们的特点、使用场景和配置方法。 首先,让我们来看一下`log4j`。它是Apache组织的一个开源项目,广泛应用于Java应用程序中。Log4j提供了丰富的日志级别(如DEBUG, ...
本文将深入探讨Java中的日志组件及其重要性。 首先,我们要理解日志的基本概念。日志是程序运行过程中的事件记录,包括但不限于错误信息、警告消息、调试信息、用户操作记录等。这些信息有助于在出现问题时快速定位...
java日志组件
本文将深入解析Java日志组件之间的关系,以便于理解和选择适合的日志解决方案。 首先,我们要了解日志组件的总览。在Java世界里,有多个日志组件,如Log4j、Logback、Java Util Logging (JUL)、SLF4J(Simple ...
Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件用于构建桌面应用程序。在Swing中,组件是构建用户界面的基本元素,每个组件都有特定的功能和用途。以下是Java Swing中最常用的9种组件,以及...
2. **利用日志组件过滤**: 另一个方法是通过日志框架(如Log4j或SLF4J)设置过滤器,匹配并替换特定的敏感关键字。但这可能会导致性能下降,因为每个日志输出都要进行正则匹配。 为了克服上述两种方法的局限,...
定时扫描文件夹下面的所有文件更新,上传hbase
Java日志记录是开发过程中必不可少的部分,用于跟踪应用程序运行时的行为,排查问题,以及收集性能数据。Log4j和Commons-Logging是两个在Java世界中广泛使用的日志记录库。 1. **Log4j**: Log4j是Apache组织开发的...
一个java分布式日志组件,支持百亿级别,日志从搜集到查询,不用去文件中翻阅日志方便快捷,支持查询一个调用链的日志,支持链路追踪,查看调用链耗时情况,在分布式系统中也可以查询关联日志,能够帮助快速定位问题...
在Java开发过程中,工具类和组件包扮演着至关重要的角色,它们可以极大地提高开发效率,减少重复工作,并提供一些常用功能的便捷实现。本压缩包“java开发工具组件包”显然是一个集合了开发者在日常工作中经常使用的...
同时,由于跨语言交互的复杂性,调试过程中可能需要对COM组件的日志和Java的异常堆栈信息进行分析。 总之,Java调用COM+组件通过JCOM库实现了不同编程语言之间的互操作性,为开发者提供了一种灵活的解决方案,尤其...
自定义日志模块(接口及代理实现),而不直接使用第三方日志框架接口,避免在日志框架升级或者切换时,代码过多耦合。 这个举例说明一下: 比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j...
本文将探讨几个重要的Java日志组件,包括它们之间的关系、如何进行配置以及如何处理与遗留日志框架的兼容性问题。 首先,SLF4J(Simple Logging Facade for Java)是一个日志门面,类似于Apache Commons Logging,...
这款组件的出现使得在Visual Studio环境下进行Java或.NET编程时,对日志的处理变得更加便捷和灵活。NLOG不仅支持C#,还特别针对Java开发者提供了兼容性,使得跨平台的日志管理成为可能。 在日志系统中,NLOG的核心...
Java日志库是Java开发中不可或缺的部分,它们帮助开发者记录应用程序的运行状态、错误信息以及调试数据。在Java世界里,日志框架的选择多种多样,其中log4j、Commons Logging和SLF4J(Simple Logging Facade for ...
Java邮件发送组件是Java开发中用于发送电子邮件的工具,它使得开发者能够轻松地在应用程序中实现邮件功能。Java Mail API是实现这一功能的核心库,它提供了丰富的接口和类,允许程序进行邮件的创建、发送以及处理。...
在Java开发中,日志组件扮演着至关重要的角色,它帮助开发者记录程序运行时的信息,以便于调试、问题排查和性能分析。本文将深入探讨Java中的log日志组件,包括JDK内置的日志(jdkLog)、Apache的Commons Logging...
Java日志控件是一种在Java EE环境中用于日志监控的组件,它专注于提供对应用程序日志的高效管理和控制。此控件设计的核心理念是通过切面编程(Aspect-Oriented Programming, AOP)来实现日志拦截,允许开发者在不...