Log4j和commons-logging的关系

文章参考 http://zy19982004.iteye.com/blog/1867448

 

 

 

1、commons-logging是一个简单的适配器,为各种各样的日志实现提供了统一的接口。

2、当变化日志实现时,application不需要做任何改变。

3、commons-logging也提供了简单的日志实现,但不推荐使用。

 

Commons-logging能帮我们做什么?

a) 提供一个统一的日志接口,简单了操作,同时避免项目与某个日志实现系统紧密a耦合

b) 很贴心的帮我们自动选择适当的日志实现系统(这一点非常好!)

c) 它甚至不需要配置

 

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和commons-logging

项目里加入log4j.jar和commons-logging.jar,加入classpath下。

新建log4j.properties,加入classpath下。

package com.joyoungzhang.log4j;  
import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;  
publicclass Log4jModel {  
privatestaticfinal Log LOG = LogFactory.getLog(Log4jModel.class);  
publicstaticvoid main(String[] args) {  
if (LOG.isErrorEnabled()) {  
            LOG.error("error......");  
        }  
if (LOG.isInfoEnabled()) {  
            LOG.info("info......");  
        }  
if (LOG.isDebugEnabled()) {  
            LOG.debug("debug......");  
        }  
    }  
}

 

 

 

你可能感兴趣的:(commons)