Apache Commons-logging使用实例

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

时间: 2024-09-09 14:37:26

Apache Commons-logging使用实例的相关文章

深入源码之Commons Logging

自从七月份去走川藏后,已经好几个月没有更新博客了.其实八月底从拉萨回来后一直在Spring的代码,也想写几篇关于Spring源码的解读,可惜Spring实在是太复杂了,花了我一个多月的时间,框架大体流程是有头绪了,但是具体实现和各个模块的具体细节还都不是很清楚,迟迟不敢动笔.其实原本我不想回到Logging这一块,我知道光看完Log4J的代码还不够,也感觉Log在系统中其实占据了蛮重要的位置(虽然很多人都没有意识到),不过一般Log框架使用简单,遇到问题也比较少,即使看完源码对实际工作也帮助不大

java-类库-Apache Commons

   Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍.   组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库

Commons Logging存在的ClassLoader问题详解

在看Java Logging相关的框架.代码.资料的时候,一直有听说Commons Logging存在ClassLoader相关的问题,但是看它的实现代码(1.1.1版本),对ClassLoader做了非常详细的查找:用了Thread Context ClassLoader.System ClassLoader.以及LogFactoryImpl本身的ClassLoader,感觉上已经很全面了.上周末有幸找到一篇Ceki Gülcü写文章,详细介绍了Commons Logging中存在的Class

Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)

  Acknowledgments I would like to thank Jacob Kjome for reviewing early drafts of this document. His comments helped to clarify several important points. Jake also keeps reminding us on the log4j-dev mailing list that the child-parent delegation mode

org.apache.commons.fileupload上传临时文件删除方法2则

在将文件项封装成FileItem 对象时,如果文件尺寸大于临界值,将会被写入临时文件.   清理方法1 这些临时文件在不再被使用的时候(如果相应的java.io.File是可回收的则更好)会自动被删除.这会被org.apache.commons.io.FileCleaningTracker的一个实例启动的一个收割线程默默执行.     在一个web应用中,资源清理是被javax.servlet.ServletContextListener的一个实例控制的.在其他环境中,类似的观念定是适用的.  

Apache commons fileupload文件上传实例讲解_java

文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload. 我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题: 1 form表单内,要添加空间<input type="file" name="myfile"> 2 form表单的内容格式要定义成multipart/form-data格式 3 需要类库:1 commons-io.jar 2commons-fileupload-1.

java-框架-apache.commons.*工具

Apache Commons类库 1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默默无闻的.在我看来,成功而默默无闻的那些框架值得我们格外的尊敬和关注,Jakarta Commons就是这样的一个框架.如果你至少参与了一个中型规模的Java项目,那么我想有超过一大半的机会你都接触和使用到了Jakarta Commons,不管你自己有没有察觉.就我所知,除了Apache Jakarta其他许多开源框架之外,不少所谓的商业框架其实内部有

使用 Apache Commons CLI 开发命令行工具示例

概念说明 Apache Commons CLI 简介         Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能.     Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种: POSIX(Portable Operating System Interface of Unix)中的参数形式,例如 tar -zxvf foo.tar.gz GNU 中的长参数形式,例如 du

Apache commons简介

apache Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html BeanUtilsCommons-BeanUtils 提供对 Java 反射和自省API的包装 BetwixtBetwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. ChainChain 提供实现组织复杂的处理流程的"责任链模式". CLICLI 提供

让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】

阅读目录 1. DateFormatUtils 和 FastDateFormat  2. DateUtils 3. DurationFormatUtils 和 StopWatch      JAVA的时间日期处理一直是一个比较复杂的问题,大多数程序员都不能很轻松的来处理这些问题.首先Java中关于时间的类,从 JDK 1.1 开始,Date的作用很有限,相应的功能已由Calendar与DateFormat代替.使用Calendar类实现日期和时间字段之间转换,使用 DateFormat 类来格式