快速业务通道

Apache Commons-logging使用实例 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

Apache Commons-logging使用实例

时间:2011-03-07 zhangjunhd

1.Commons-Loggin简介

Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,进行了简单的包装,此接口更接近于Log4J和LogKit的实现。

2.快速入门

JCL有两个基本的抽象类:Log(基本记录器)和LogFactory(负责创建Log实例)。当commons-logging.jar被加入到 CLASSPATH之后,它会合理地猜测你想用的日志工具,然后进行自我设置,用户根本不需要做任何设置。默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用的(按照顺序,寻找过程会在找到第一个工具时中止):

1. 寻找当前factory中名叫org.apache.commons.logging.Log配置属性的值

2. 寻找系统中属性中名叫org.apache.commons.logging.Log的值

3. 如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)

4. 如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)

5. 使用简易日志包装类(SimpleLog)

org.apache.commons.logging.Log的具体实现有如下:

-org.apache.commons.logging.impl.Jdk14Logger 使用JDK1.4。

-org.apache.commons.logging.impl.Log4JLogger 使用Log4J。

-org.apache.commons.logging.impl.LogKitLogger 使用 avalon-Logkit。

-org.apache.commons.logging.impl.SimpleLog common-logging自带日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。

-org.apache.commons.logging.impl.NoOpLog common-logging自带日志实现类。它实现了Log接口。 其输出日志的方法中不进行任何操作。

3.使用JCL开发

因为Log4j的强大,同时开发者又不希望对Log4j的依赖性太强。所以目前比较流行的是Commons-logging和Log4j结合使用。

1. 部署日志器

下载commons-logging.jar和log4j.jar包,能后把它们放到工程的lib目录下,引入工程中。

2. 指定日志器

在属性文件common-logging.properties中设置实现接口的类。如下(这里设置Log4j为所使用的日志包):

#commons-logging.properties文件配置信息 # org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog # Must be one of ("trace", "debug", "info", "warn", "error", or "fatal"). #利用log4j为输出介质 org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog #JDK5 Logger #org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

Apache Commons-logging使用实例(2)

时间:2011-03-07 zhangjunhd

3.org.apache.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);

除此以外,还提供下列方法以便代码保护。

log.isFatalEnabled(); log.isErrorEnabled(); log

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号