java日志组件:common-logging和log4j的使用说明

来源:互联网 发布:淘宝 毛毛哥音响 编辑:程序博客网 时间:2024/06/06 17:10

Commons-Logging简介

common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,如Log4J、Avalon LogKit、JDK1.4等。common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-logging,通常都是配合着log4j来使用。使用它的好处就是,代码依赖是common-logging而非log4j, 避免了和具体的日志方案直接耦合,在有必要时,可以更改日志实现的第三方库。

import org.apache.commons.logging.Log;  import org.apache.commons.logging.LogFactory;public class Hello{      private static Log logger = LogFactory.getLog(Hello.class));  }

动态查找原理:
Step1: 找org.apache.commons.logging.LogFactory 属性配置
Step2: 没找到,则从Classpath 里寻找commons-logging.properties ,找到则根据里面的配置加载
Step3:还是没找到, 使用默认配置。

使用Commons-Logging做开发
1. 部署日志器
下载commons-logging.jar和log4j.jar包,能后把它们放到工程的lib目录下,引入工程中
2.指定日志
在属性文件common-logging.properties中设置实现接口的类。如下(这里设置Log4j为所使用的日志org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
3.commons.logging.Log接口中定义的方法,按严重性由高到低的顺序:

log.fatal(Object message);
log.fatal(Object message, Throwable t);
log.error(Object message);
log.error(Object message, Throwable t);
log.warn(Object message);
log.warn(Object message, Throwable t);
log.info(Object message);
log.info(Object message, Throwable t);
log.debug(Object message);
log.debug(Object message, Throwable t);
log.trace(Object message);
log.trace(Object message, Throwable t);

信息级别
确保日志信息在内容上和反应问题的严重程度上的恰当,是非常重要的。
1)fatal非常严重的错误,导致系统中止。期望这类信息能立即显示在状态控制台上。

2)error其它运行期错误或不是预期的条件。期望这类信息能立即显示在状态控制台上。

3)warn使用了不赞成使用的API、非常拙劣使用API, ‘几乎就是’错误, 其它运行时不合需要和不合预期的状态但还没必要称为 “错误”。期望这类信息能立即显示在状态控制台上。

4)info运行时产生的有意义的事件。期望这类信息能立即显示在状态控制台上。

5)debug系统流程中的细节信息。期望这类信息仅被写入log文件中。

6)trace更加细节的信息。期望这类信息仅被写入log文件中。

log4j的配置通常如下

 ### set log levels ###log4j.rootLogger = debug ,  stdout ,  D ,  E### 输出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n### 输出到日志文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 保存异常信息到单独文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/error.log ## 异常日志文件名log4j.appender.D.Append = truelog4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
0 0
原创粉丝点击