`
cloudeagle_bupt
  • 浏览: 579089 次
文章分类
社区版块
存档分类
最新评论

apache common logging和log4j区别

 
阅读更多
Apache common logging是一种log的框架接口,它本身并不实现log记录的功能,而是在运行时动态查找目前存在的日志库,调用相关的日志函数,从而隐藏具体的日志实现
log4j是具体的日志实现,真正负责"写"日志的这个功能


common logging本身不是log,你可以把它看做是一个日志的接口
而log4j就是日志的实现


使用common logging方式实现日志,主要的原因在于可以忽略底层的日志实现,或者说为以后的日志实现库的更换提供透明界面
你可以考虑下,假设从log4j更换为logback,势必要重写所有原本使用log4j的源代码,而使用common logging的情况下,只需要更换jar包,而不需要对源代码做任何改动。


做日志的时候一般是两者一起用,commons-logging工作原理做接口,log4j做实现,应用起来比单独的使用log4j要简单


commons-logging工作原理:
1. 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类
2. 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类
3. 查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类
4. 使用JDK自身的日志实现类(JDK1.4以后才有日志实现类)
5. 使用commons-logging自己提供的一个简单的日志实现类SimpleLog
(以上顺序不保证完全准确,请参考官方文档)
commons-logging总是能找到一个日志实现类,并且尽可能找到一个"最合适"的日志实现类.
分享到:
评论

相关推荐

    Common-log 和log4j2 配合使用

    将`Common-Log`与`log4j2`结合使用,首先需要在项目中引入`Common-Log`的接口库和`log4j2`的实现库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>commons-logging <artifactId>commons...

    Apache Commons-logging使用实例

    * org.apache.commons.logging.impl.Log4JLogger 使用 Log4J * org.apache.commons.logging.impl.LogKitLogger 使用 avalon-Logkit * org.apache.commons.logging.impl.SimpleLog common-logging 自带日志实现类 ...

    日志框架学习之一:commons-logging+log4j

    标题中的“日志框架学习之一:commons-logging+log4j”揭示了本文将探讨的是在Java开发中常用的两个日志处理工具——Apache Commons Logging和Log4j。这两个框架是日志记录的基础,广泛应用于各种Java应用程序,为...

    log4j.jar以及common-logging.jar两个jar文件全在这

    在实际应用中,如果`log4j.jar`和`commons-logging.jar`一起使用,通常需要确保`commons-logging`的配置指向`log4j`作为其底层实现,以充分利用`log4j`的功能和灵活性。 总结,`log4j.jar`和`commons-logging.jar`...

    log4j.jar和common-logging.jar两个都有

    本文将深入探讨`log4j.jar`和`common-logging.jar`这两个著名的Java日志库,以及它们在Java应用中的作用。 首先,`log4j.jar`是由Apache软件基金会开发的日志框架,它是Log4j项目的组成部分。Log4j是Java平台上的一...

    slf4j+logback 于log4j+commons-logging大PK

    今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...

    Log4j与common-logging

    标题中的“Log4j与common-logging”涉及的是两种广泛使用的Java日志框架。Log4j是Apache软件基金...文件“Apache Commons Logging日志与Log4j及JUL的区别.doc”可能包含了更深入的比较和分析,建议查阅以获取更多信息。

    log4j学习

    本文将重点探讨两个在Java世界中广泛使用的日志框架——Commons Logging和Log4j,以及它们如何协同工作。 #### Commons Logging:日志接口的标准 Commons Logging由Apache提供,其主要目标是作为一个轻量级的日志...

    apache-log4j-2.3 核心jar包

    **log4j-api-2.x 和 log4j-core-2.x是必须的,其他包根据需要引入, Common Logging Bridge: log4j-jcl-2.3 Log4j 2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能...

    log4j.properties

    log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如...

    Java log4j commons文件

    "Java log4j commons文件"主要涉及两个关键组件:log4j和Apache Commons Logging。 首先,log4j是Apache软件基金会的一个项目,它提供了一个灵活的日志框架,用于在Java应用程序中生成日志。log4j的核心概念包括...

    用maven + spring mvc +JDBCTEMPLATE +由Slf4j实现Common-Logging+Log4j的日志控制(数据库用MySQL)

    4. **Slf4j** - 日志门面,允许用户在运行时选择不同的日志实现,如Common-Logging或Log4j,提供了统一的API进行日志记录。 5. **MySQL** - 常用的关系型数据库管理系统,用于存储应用的数据。 在搭建项目时,首先...

    Sping.net&NHibernate;&Common;.Logging&log4net;

    在本压缩包中,Common.Logging.dll和Common.Logging.Log4Net.dll是针对log4net的日志适配器,它使得应用程序可以通过Common.Logging API调用log4net进行日志记录。 log4net是Apache软件基金会的项目,是一个强大的...

    Common Logging的jar包.zip

    Commons Logging通过提供一个抽象层,允许开发者使用简单的API来记录日志,而具体的日志实现(如Log4j、Java Util Logging或SLF4J)可以根据项目需求或者环境配置进行选择和切换。 Commons Logging的核心概念包括...

    Common Logging日志接口

    "Common Logging"接口支持多种流行的日志框架,包括标签中提到的几个:Logging.dll(可能是项目自定义的日志库)、EntLib.dll(Enterprise Library的日志提供程序)、Log4Net.dll(Apache的Log4net,广泛用于.NET...

    log4jappender配置kafka使用的jar包

    <groupId>org.apache.logging.log4j <artifactId>log4j-api <version>2.x.x <groupId>org.apache.logging.log4j <artifactId>log4j-core <version>2.x.x <groupId>org.apache.kafka <artifactId>...

    Jakarta common logging 简介 以及和其它日志系统结合使用

    它提供了一种统一的方式来管理和记录应用程序的日志信息,允许开发者选择自己喜欢的日志实现,如Log4j、Java Util Logging (JUL) 或者 Logback等,而无需修改代码。JCL通过API抽象了各种日志框架,使得应用可以在...

    common-logging库 完整版 jar包 Eclipse

    4. **配置日志实现**:`common-logging`通过查找类路径中的特定文件(如`log4j.properties`或`logging.properties`)来确定使用哪个日志实现。如果没有找到,它会默认使用`java.util.logging`。如果你希望使用其他...

    log4j的作用及测试

    在实际开发过程中,为了更好地进行日志管理,通常会选择使用log4j而非Apache的common-logging包。下面将详细介绍如何使用log4j进行日志记录。 #### 三、引入必要的jar包 为了使log4j能够在项目中正常运行,需要在...

    commons-logging-1.1.3.jar

    common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的...使用它的好处就是,代码依赖是common-logging而非log4j, 避免了和具体的日志方案直接耦合,在有必要时,可以更改日志实现的第三方库。

Global site tag (gtag.js) - Google Analytics