快速业务通道

扩展JDK日志框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
NEST);    ... }

配置文件的配置方法则同样灵活多变。它主要是在应用程序启动时根据一个指定的配置文件来设置日志对象。在配置文件中,日志对象是由 其名称来标识的。一个典型的日志配置文件如清单 6 所示。

清单 6 JDK Logger 配置文件

# 设置日志对象的 Handler,日志对象的名称是 com.xyz.foo com.xyz.foo.handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler # 设置日志对象的基本输出级别 com.xyz.foo.level = INFO #FileHandler 只允许输出 SEVERE 以上级别的日志 java.util.logging.ConsoleHandler.level = SEVERE #ConsoleHandler 允许输出 INFO 以上级别的日志 java.util.logging.ConsoleHandler.level = INFO

当设置好一个日志配置文件后,在 java 程序的启动参数中,我们可以通过添加 -Djava.util.logging.config.file 参数来定义配置文件 路径,一个典型的 java 命令行如下:

java -Djava.util.logging.config.file=logger.properties -cp . Mainclass

我们也可以在应用程序中声明自定义的 Handler,Formatter,Level 等组件,这只需要这些自定义组件能够在 classpath 中找到即可。

扩展JDK日志框架(5)

时间:2011-07-18 IBM 颜 林

实例——结合 STAF 日志服务

STAF(Software Testing Automation Framework)是一个自动化软件测试框架,它可以实现分布式的自动化软件测试管理。我们可以应用 STAF 库的 Java API 来做基于 STAF 框架的应用,同时 STAF 同时也提供了日志服务。其日志服务是用来记录自动化测试流程中的信息,方便 在 24x7 的自动化测试中记录自动化测试的操作,便于发现潜在的自动化测试管理脚本的问题。

既然我们可以用 STAF 的 Java API 来做基于 STAF 的应用,我们也可以将 JDK 的日志框架同 STAF 的日志服务接口结合起来。 STAF 的 日志服务的 Java 接口定义如清单 7 所示:

清单 7 STAFLog 类定义

public class STAFLog {    public STAFLog(String logType, String logName, STAFHandle handle);    public STAFResult log(int level, String msg)    // Log type constants    public static STAFResult log(STAFHandle theHandle, String logType,                  String logName, int level, String msg)    public String getName();    public String getLogType();    public int getMonitorMask();    ... //other methods }

从清单 7 我们可以看出,STAFLog 类提供了方法可以将日志信息存储到 STAF 的日志库中, 这个日志库既可以是本地的文件,也可以是另 一个 STAF 服务器上的日志库。这是通过本地 STAF 服务器的配置来决定的。而 STAFLog.log() 方法只用于记录日志信息。

将 STAF 日志服务的 Java API 同 JDK 日志框架结合起来需要做如下步骤:

创建 STAF 日志 Handler 类

该类封装了 STAF 日志服务 API 的接口。同时 STAF 的 Java API 需要一个全局的 STAFHandle 对象,用来表示本地的 STAF 服务句柄。 这个可以通过建立一个静态的 STAFHandle 对象即可。其代码如下所示,我们定义了一个 STAFHandler 类如清单 8 所示。

清单 8 STAFHandler 类实现

import java.util.logging.*; import com.ibm.staf.wrapper.STAFLog; public class STAFHandler extends Handler {    private String logName;    private static STAFHandle stafHandle = null;    public STAFHandler(String name) {      configure();      logName = name;    }    public STAFHandler() {      configure();    }    @Override    public void close() throws SecurityException {     

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号