Apache Commons-logging使用实例
2007-04-27 16:14:57
标签:
实例 Apache log4j Commons-logging [
推送到技术圈]
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://zhangjunhd.blog.51cto.com/113473/25135
|
|||||||||
Apache Commons-logging
使用实例
本文将介绍如何在程序中使用Apache Commons-logging
author: ZJ 07-3-17
Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]
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
为所使用的日志包
)
:
3
.
org.apache.commons.logging.Log
接口中定义的方法
,
按严重性由高到低的顺序有:
除此以外,还提供下列方法以便代码保护。
4
.信息级别
确保日志信息在内容上和反应问题的严重程度上的恰当,是非常重要的。
1
)
fatal
非常严重的错误,导致系统中止。期望这类信息能立即显示在状态控制台上。
2
)
error
其它运行期错误或不是预期的条件。期望这类信息能立即显示在状态控制台上。
3
)
warn
使用了不赞成使用的
API
、非常拙劣使用
API, '
几乎就是
'
错误
,
其它运行时不合需要和不合预期的状态但还没必要称为
"
错误
"
。期望这类信息能立即显示在状态控制台上。
4
)
info
运行时产生的有意义的事件。期望这类信息能立即显示在状态控制台上。
5
)
debug
系统流程中的细节信息。期望这类信息仅被写入
log
文件中。
6
)
trace
更加细节的信息。期望这类信息仅被写入
log
文件中。
通常情况下,记录器的级别不应低于
info.
也就是说,通常情况下
debug
的信息不应被写入
log
文件中。
4
.
Apache Commons-logging
使用流程
1
)将
common-logging.jar
包加入到环境变量或者
classpath
。
2
)导入
org.apache.commons.logging.Log; org.apache.commons.logging.LogFactory;
及相关包
3
)在需要使用
logging
的地方获取
Log
实例。
4
)使用
Logger
对象的
debug,info,fatal...
方法。
5.Apache Commons-logging
使用示例
Test.java
结果:
DEBUG sample.Test.log(
Test.java:13
) Debug info.
INFO sample.Test.log(
Test.java:14
) Info info
WARN sample.Test.log(
Test.java:15
) Warn info
ERROR sample.Test.log(
Test.java:16
) Error info
FATAL sample.Test.log(
Test.java:17
) Fatal info
当没有任何配置文件(
.properties
)时,就如同上的结果。此时,它使用的是使用简易日志包装类
(SimpleLog)
。
下面加入包与配置文件,使其使用
log4j
。
1)
加入配置文件
commons-logging.properties
和
log4j.properties
。
2)
将
log4j.jar
和
common-logging.jar
两个包加入到环境变量或者
classpath
。
3
)
Test.java
内容不变。
3)
commons-logging.properties
4
)
log4j.properties
结果:
6.Apache Log
介绍集
[1] Apache Log4j配置说明
[2] Apache Log4j使用实例
[3] Apache Commons-logging使用实例
[4] 如何自建appender扩展Log4j框架
7
.参考资料
[1]
官方文档
[2] Jakarta Commons Logging(JCL)
开发手记
[url]http://blog.csdn.net/fasttalk/archive/[/url] 2005/06/29 /406681.aspx
本文出自 “
子 孑” 博客,请务必保留此出处
http://zhangjunhd.blog.51cto.com/113473/25135
|