`
zy19982004
  • 浏览: 661799 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
F6f66edc-1c1a-3859-b76b-a22e740b7aa7
Hadoop学习
浏览量:251950
社区版块
存档分类
最新评论

Java日志学习一:Log4j和commons-logging的关系

 
阅读更多

一.Apache Log4j

  1.  http://logging.apache.org/log4j/2.x/
  2. 提供了全面的日志管理。

二.Apache commons-logging

  1. http://commons.apache.org/proper/commons-logging/ 
  2. there are many logging implementations out there,The Logging package is an ultra-thin bridge between different logging implementations...
  3. 翻译过来:
  • commons-logging是一个简单的适配器,为各种各样的日志实现提供了统一的接口。
  • 当变化日志实现时,application不需要做任何改变。
  • commons-logging也提供了简单的日志实现,但不推荐使用。

三.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;

四.使用Log4j和commons-logging 

  1. 项目里加入log4j.jar和commons-logging.jar,加入classpath下。
  2. 新建log4j.properties,加入classpath下。
  3. package com.joyoungzhang.log4j;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    
    public class Log4jModel {
    
    	private static final Log LOG = LogFactory.getLog(Log4jModel.class);
    
    	public static void main(String[] args) {
    		if (LOG.isErrorEnabled()) {
    			LOG.error("error......");
    		}
    		if (LOG.isInfoEnabled()) {
    			LOG.info("info......");
    		}
    		if (LOG.isDebugEnabled()) {
    			LOG.debug("debug......");
    		}
    	}
    
    }
    
    通过http://zy19982004.iteye.com/blog/1991328可以了解到,采用org.apache.commons.logging.impl.LogFactoryImpl作为LogFactory,去实例化一个Log4JLogger对象。

 

五.单独使用Log4j或commons-logging

  1.  单独使用Log4j,在编程复杂度上比一起使用Log4j和commons-logging更低,但整个系统与Log4j是耦合的,有一天我不想使用Log4j了,整个系统都得改。
  2. 单独使用commons-logging当然也可以,但commons-logging的作用体现在“为所有的日志实现提供统一的接口”,本身并没有强大的日志实现系统,所以也不推荐。

六.你也可以阅读以下文档

  1. http://commons.apache.org/proper/commons-logging/
  2. http://logging.apache.org/log4j/2.x/
  3. http://www.cnblogs.com/80houboy/archive/2012/01/02/commons-logging_commons-log4j.html

七.附件内容:commons-logging和Log4j整合的demo

  • Kit.zip (832.6 KB)
  • 下载次数: 39
1
0
分享到:
评论

相关推荐

    apache-log4j-2.3-bin和commons-logging-1.2

    Apache Log4j 2.3 和 Commons Logging 1.2 是两个在Java Web开发中广泛使用的日志处理库。这两个库对于记录应用程序的运行时信息、调试错误和监控系统状态至关重要。 **Apache Log4j 2.3** Log4j 是 Apache 组织...

    log4j.jar和commons-logging.jar

    "log4j.jar" 和 "commons-logging.jar" 是两个非常著名的Java日志库,它们在Java日志处理中扮演着核心角色。 **log4j.jar** 是Apache软件基金会开发的一个开源日志框架,它为Java应用程序提供了灵活的日志记录解决...

    log4j与commons-logging-1.0.4.jar

    而Apache Commons Logging是另一个Java日志库,它不直接实现日志记录,而是一个日志接口层。它的主要目的是解决不同日志实现之间的兼容性问题。通过Commons Logging,开发者可以在不修改代码的情况下切换底层的日志...

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

    在项目中包含`log4j-1.2.14.jar`和`commons-logging-1.1.1.jar`文件后,需要创建相应的配置文件(通常是`log4j.properties`或`log4j.xml`),以指定日志记录的详细设置。这样,你就可以利用Log4j的强大功能,同时...

    commons-logging-1.2-bin.zip下载

    Apache Commons Logging 是一个Java日志框架的抽象层,它允许开发者在不同的日志实现之间进行切换,而无需修改代码。这个"commons-logging-1.2-bin.zip"压缩包包含了Apache Commons Logging库的1.2版本,这是一个...

    log4j-1.2.14和commons-logging-1.1

    在项目中,我们通常会同时看到`log4j-1.2.14.jar`和`commons-logging-1.1.jar`这两个文件,这表明项目使用了Commons Logging作为日志接口,并将Log4j作为实际的日志实现。为了使两者协同工作,需要确保在项目的类...

    slf4j+logback 于log4j+commons-logging大PK

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

    Commons-logging + Log4j 使用

    在Java世界里,`commons-logging`和`log4j`是两个广泛使用的日志库。本文将详细介绍如何结合使用这两个库以及它们各自的功能和优势。 `commons-logging`是一个日志抽象层,它的主要目标是提供一个统一的日志接口,...

    commons-logging-1.2_commonslogging_

    在标题"commons-logging-1.2_commonslogging_"中提到的"commons-logging-1.2.jar"就是这个库的1.2版本,它是Spring框架中常用的一个依赖,用于处理日志记录。 Spring框架广泛使用Commons Logging作为其默认的日志...

    commons-logging和Log4j的关系

    总结来说,`commons-logging`和`Log4j`的关系可以比喻为“接口”和“实现”的关系,前者提供了一种标准的日志记录接口,后者是这些接口的一个具体实现,两者结合使用能够实现灵活的日志管理和调试。在Java开发中,...

    (zt)Commons-logging + Log4j 入门指南

    Apache Commons Logging和Log4j是两个广泛使用的日志框架,本指南将深入讲解如何将它们结合使用,为你的Java应用程序提供强大的日志功能。 首先,让我们了解Apache Commons Logging。它是Apache软件基金会的一个...

    commons-logging-1.2

    Commons Logging 是 Apache 组织提供的一款轻量级的日志记录工具库,它的主要目标是为 Java 开发者提供一个简单的接口来使用各种日志框架,如 Log4j、Java Util Logging(JUL)或者 Simple Logging Facade for Java...

    commons-httpclient3.1.jar,commons-codec1.3.jar,commons-logging1.1.1.jar

    Commons Logging是Java日志框架的一个抽象层,允许开发者选择底层的日志实现,如Log4j、Java内置的日志API等。HttpClient使用Commons Logging来记录其运行时信息,帮助开发者调试和监控HTTP请求的执行情况。 这些...

    commons-logging-1.1.1.jar和java-unrar-0.3.jar

    它的主要目的是提供一个抽象层,使得开发人员可以在不修改代码的情况下,选择和切换不同的日志实现(如log4j、java.util.logging或commons-logging自身的SimpleLog)。通过引入Commons Logging,"java-unrar-0.3.jar...

    commons-logging-1.1.3-bin.zip

    这个库的主要目标是为Java应用程序提供一个简单且统一的日志接口,使得开发者可以在不修改代码的情况下,方便地切换到不同的日志实现,如Log4j、Java内置的日志(java.util.logging)或者其它第三方日志框架。...

    commons-logging-1.2.1.1.jar

    此外,虽然Commons Logging提供了一种抽象的日志解决方案,但随着日志框架的不断发展,一些现代的替代品如SLF4J(Simple Logging Facade for Java)和Logback应运而生。SLF4J提供了一个更简洁的API,并且设计上更...

    commons-logging-1.2-bin.zip

    Apache Commons Logging,简称为Commons Logging,是Apache软件基金会开发的一个开源日志框架,主要用于提供一个统一的日志接口,使得Java应用程序可以在不改变代码的情况下,自由地切换不同的日志实现库,如Log4j、...

    commons-logging-1.2.jar

    这个库允许开发者选择底层的日志实现,如Log4j、Java内置的日志API(java.util.logging)或者其他第三方日志系统,而无需修改代码。它的核心概念是提供一种抽象,使得应用代码与特定的日志实现解耦,从而增强了灵活...

    spring jar 包 _ log4j-1.2.17.jar_commons-logging.jar

    2. **Commons-Logging**:Apache Commons Logging是一个轻量级的日志接口,它提供了一种抽象层,使得应用程序可以独立于具体的日志实现(如Log4j、java.util.logging等)进行编写。在Spring框架中,Commons-Logging...

Global site tag (gtag.js) - Google Analytics