Apache通用日志包使用简介
日志记录为我们的项目维护提供了极具价值的参考消息,灾难性的恢复或系统改良都离不开这些信息,日志机制是日常项目开发中必不可少的一道作业工序。一、Apache通用日志包简介
Apache的通用日志包commons-logging是jakarta common(jakarta commons项目是作为JDK的补充拓展及优化的一系列方案)的日志解决方案,它提供了一组通用的第三方日志组件的接口,用户可以根据需要自由选择,同时它还把日志管理机制与我们的应用程序进行了隔离,避免应用程序的api与日志耦合在一起。
Apache通用日志包commons-logging.jar下载地址:
http://archive.apache.org/dist/commons/logging/commons-logging-current.zip
Apache的通用日志包由于其灵活性与非侵略性的优点,已被各种framework推荐采纳使用,像struts、hibernate、spring,在tomcat安装目录的bin目录下也包含了commons-logging.jar,如今的MyEclipse6.0创建一个web project会自动将commons-logging.jar引入web/lib下,所以你几乎无需去下载和引入这个包便可使用,它已经被广泛的使用和采纳。
Commons日志包支持以下第三方的日志组件:
·log4j
·JDK14Logging
·LogKit
·SimpleLog
·NoOpLog
二、Apache通用日志管理机制
Apache通用日志等级:
Commons日志包将日志消息分为6个级别:
http://welkinwwl.iteye.com/upload/attachment/pic/10128/a5bf91bc-398b-4c28-b0e0-6a20ddf21a04-thumb.gif
这6个级别由上至下,由高至低。当我们在配置文件中指明日志消息的一个输出级别时(关于Commons日志包的配置方法将在后面说明),只有比这个级别高级的信息才会输出。例如:我们将日志输出级别设置为INFO,那么位于DEBUG以下级别的信息将不会输出。
Apache通用日志API:
commons-logging包下包含org.apache.commons.logging包和org.apache.commons.logging,impl包
http://welkinwwl.iteye.com/upload/attachment/pic/10129/af8aa741-a221-4112-8994-480da793d10e-thumb.gif
org.apache.commons.logging包:
Log类:Log是常用的接口,声明了日志对象的使用方法;
LogConfigurationException类:继承于RuntimeException,定义了日志的异常信息;
LogFactory类:Log的工厂, 静态工厂方法getLog(Class clazz)和getLog(String name)返回一个Log实例,getLog(Class clazz) 和getLog(String name)具体定义如下:
java 代码
[*]publicstatic Log getLog(Class clazz) throws LogConfigurationException {
[*] return (getFactory().getInstance(clazz));
[*] }
[*] publicstatic Log getLog(String name) throws LogConfigurationException {
[*] return (getFactory().getInstance(name));
[*] }
我们可以看出来getLog方法返回的Log实例是通过调用getFactory()返回一个 LogFactory实例再调用getInstance()方法得到的,getInstance()是一个抽象方法,在getFactory方法中(由于篇幅有限,不再将getFactory源码贴出,有兴趣可以自 己看下源码)会加载commons-logging.properties属性文件(由 FACTORY_PROPERTIES字段表示,关于属性配置文件稍后说明)将 org.apache.commons.logging.Log接口按照具体指明的类去实现,然后调 用由已 实现的getInstance方法来得到Log实例。
LogSource类:这个类作为向上兼容,已由LogFactory取代。
org.apache.commons.logging.impl包:
这个包包含了一些已实现了Log接口的类,不再赘述。
三、Apache通用日志的配置
Commons日志配置非常简单,您只需在工程src目录下建立一个commons-logging.properties属性文件,指明org.apache.commons.logging.Log接口将由哪个第三方的日志组件来实现即可。
例如:commons-logging.properties中写入如下配置
[*]org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
即使用log4j来管理日志,这个Log4JLogger类只实现了一些简单的日志输出,如果要使用将日志信息输出到指定文件或其他功能需要引入log4j的类库,我会在日后写一篇关于log4j的具体使用方法与相关配置说明。
页:
[1]