Apache通用日志包使用简介

日志记录为我们的项目维护提供了极具价值的参考消息,灾难性的恢复或系统改良都离不开这些信息,日志机制是日常项目开发中必不可少的一道作业工序。
 
一、Apache通用日志包简介
       Apache的通用日志包commons-logging是jakarta common(jakarta commons项目是作为JDK的补充拓展及优化的一系列方案)的日志解决方案,它提供了一组通用的第三方日志组件的接口,用户可以根据需要自由选择,同时它还把日志管理机制与我们的应用程序进行了隔离,避免应用程序的api与日志耦合在一起。
      
Apache通用日志包commons-logging.jar下载地址:
 
       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个级别:
 
 
 
       这6个级别由上至下,由高至低。当我们在配置文件中指明日志消息的一个输出级别时(关于Commons日志包的配置方法将在后面说明),只有比这个级别高级的信息才会输出。例如:我们将日志输出级别设置为INFO,那么位于DEBUG以下级别的信息将不会输出。
 
Apache通用日志API:
commons-logging包下包含org.apache.commons.logging包和org.apache.commons.logging,impl包
 
org.apache.commons.logging包:
       Log类:Log是常用的接口,声明了日志对象的使用方法;
       LogConfigurationException类:继承于RuntimeException,定义了日志的异常信息;
       LogFactory类:Log的工厂, 静态工厂方法getLog(Class clazz)和getLog(String name)返回一个Log实例, getLog(Class clazz) 和getLog(String name)具体定义如下:
             
java 代码
  1. publicstatic Log getLog(Class clazz) throws LogConfigurationException {   
  2.          return (getFactory().getInstance(clazz));   
  3.     }   
  4.         publicstatic Log getLog(String name) throws LogConfigurationException {   
  5.         return (getFactory().getInstance(name));   
  6.     }  
 
              我们可以看出来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 中写入如下配置
  1. org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger   
     
即使用log4j来管理日志,这个Log4JLogger类只实现了一些简单的日志输出,如果要使用将日志信息输出到指定文件或其他功能需要引入log4j的类库,我会在日后写一篇关于log4j的具体使用方法与相关配置说明。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值