您的位置:首页 > 其它

commons-logging日志工具[续。。。。。。]

2012-09-13 23:05 197 查看
3.前面说到commons-logging控件,commons-logging为apche common类库中的一员,Apache commons类库是一个通用的类库,

  提供了基础的功能,例如commons-fileupload,commons-httpclient,commons-io等等。

  commons-logging能够选择使用Log4j还是JDK Logging,但是不依赖于Log4j,Jdk Logging的API.如果项目的classpath中包含log4j

  的类库,则使用Log4j,否则使用JDK Logging.使用commons-logging能够灵活的选择使用哪中日志方式,而不需要修改源代码。

    commons-logging的使用类似Log4j,他们的级别以使用规则是一样的。

  a)把commons-logging-1.0.4.jar添加到classpath,。

  b)编写代码如下:

 

  
package com.logging.commons;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CommonsLog {
private static Log log = LogFactory.getLog(CommonsLog.class);

public static void main(String[] args) {
// TODO Auto-generated method stub
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
log.fatal("fatal");
try{
String s = null;
s.length();
}catch(Exception e){
log.trace("trace一个异常",e);
log.debug("debug一个异常",e);
log.info("info一个异常",e);
log.warn("warn一个异常",e);
log.error("error一个异常",e);
log.fatal("fatal一个异常",e);
}
}
}


注:

把log4j.jar移去classpath,此时日志输出为:

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

信息: info

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

警告: warn

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

严重: error

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

严重: fatal

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

信息: info一个异常

java.lang.NullPointerException

at com.logging.commons.CommonsLog.main(CommonsLog.java:18)

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

警告: warn一个异常

java.lang.NullPointerException

at com.logging.commons.CommonsLog.main(CommonsLog.java:18)

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

严重: error一个异常

java.lang.NullPointerException

at com.logging.commons.CommonsLog.main(CommonsLog.java:18)

2012-9-13 22:55:18 com.logging.commons.CommonsLog main

严重: fatal一个异常

java.lang.NullPointerException

at com.logging.commons.CommonsLog.main(CommonsLog.java:18)

再把log4j.jar添加到classpath,生成的日志不光用控制台,同时也有文件日志。


    (日志效果略)

另外通过commons-logging.properties可以指定采用log4j还是jdk方案。例如以下指定采用log4j方式

   org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

   org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl


(此时把log4j.jar移去classpath会报错。因此commons-logging指定采用log4j方式日志,但是log4j却不在classpath下,因此会报错)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: