Log4j + commons-logging 学习

21 篇文章 1 订阅

1.什么是Log4j?

Log4j为操作日志

2.什么是commons-logging?

      参考:http://www.blogjava.net/jxhkwhy/archive/2007/07/20/131501.html

      commons-logging使得项目与Log4j解耦,这是因为:commons-logging会自主的选择相较合适的日志记录操作日志,具体为:

    

        /*
* 使用commons-logging + log4j,使得项目与日志Log4j去耦合,自动获取最合适的日志记录方法
* 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;


* *

3.从代码上看

    a.Log4j代码

    

static Logger logger = Logger.getLogger(Log4jExternalXml.class);
		
		public static void main(String[] args){
			//DOMConfigurator.configure("src/plainlog4jconfig.xml");//获取xml
			//Logger logger = Logger.getRootLogger();
			PropertyConfigurator.configure("src/log4j.properties");//获取Log4j配置文件properties
			Logger logger = Logger.getLogger("console");
			logger.debug("Here is some DEBUGaaaaaaaaaaa");
			logger.info("Here is some INFOaaaaaaaaa");
			logger.warn("Here is some WARNaaaaaaaaaaa");
			logger.error("Here is some ERRORaaaaaaaa");
			logger.fatal("Here is some FATALaaaaaaaaa");
   b.commons-logging + log4j代码
 <pre name="code" class="java">static Log log = LogFactory.getLog(Log4jExternalXmlPlusCommonsLogging.class);//使用commons-logging无须去获取配置文件,会找到最优的输出日志方法
	public static void main(String[] args){
		log.debug("this is debug");

		log.info("this is info");

		log.warn("this is warn");

		log.error("this is error");

		log.fatal("this is fatal");
	}

 从a,b比较,b没有写获取Log4j配置文件行代码,commons-logging会自动去读取log4j.properties 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值