扩展JDK日志框架 - 编程入门网
。
JDK 的日志框架有一个全局的 singleton 管理类 STAFManager,该类用于管理日志类,并提供了读取日志配置文件的成员函数 getProperty 。在上述的代码中,我们通过 STAFManager.getProperty 方法,从日志配置文件中读取 STAFHandler 对象所设置的 Formatter 类名,然后通过反射生成一个新的 Formatter 对象,设置到 Handler 对象中。 对于日志级别也是通过 STAFManager.getProperty 方法。需要注意的是由于我们的日志级别是自定义的级别,所以 Level 对象是由我们自 定义的 Level 类 STAFLevel 来生成的。 我们也能定义自己需要的属性。比如清单 9 中我们定义了一个 .name 属性,用来存储 STAF 日志名称,通过 getProperty 函数从配置文 件中读取 .name 属性。 扩展JDK日志框架(7)时间:2011-07-18 IBM 颜 林创建一个适合 STAF 日志的 Formatter 类 由于 STAF 日志服务无需特殊的格式,我们只需要定义一个普通文本格式的 Formatter 即可。其代码如清单 10 所示,注意这里考虑了如 果记录了一个异常对象的情况,将异常对象的 stack 打印到字符串中添加到消息文本中。 清单 10. STAFFormatter 实现
创建对应于 STAF 日志级别的 Level 对象 这是由于 STAFLog 有着不同的日志消息级别,它包括 Fatal, Error, Warning, Info, Tracer, Debug 等级别,有些是 JDK 日志框架已 有的级别,有些则不是。我们需要增加新的 Level 对象来满足 STAFLog 的需求。一个新的 Level 类:STAFLevel 定义如清单 11 所示。 清单 11 自定义 STAFLevel
清单 11 定义了 FATAL,ERROR,TRACE 和 DEBUG 级别。这就和 STAFLog 中的部分级别一一对应起来了。 扩展JDK日志框架(8)时间:2011-07-18 IBM 颜 林将一切组合起来 清单 12 描述了如何在一段实际的代码中将 STAF 日志处理类和 JDK 日志类结合起来。 从清单 12 可以看出,该实例默认指定输出到 STAF 日志服务的日志名称为“ staflogger ”。然后通过动态配置的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |