• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

从 COM 客户端获得连续的 .NET 异常日志记录并且无需修改代码

发布: 2008-5-14 09:43 | 作者: 不详 | 来源: ccid | 查看: 208次 | 进入软件测试论坛讨论

领测软件测试网



ExceptionInfo 结构实例是使用 ManagedExceptionQueue pop 方法从队列的顶部提取的。该结构包含异常的引发日期和时间。该日期和时间可用来创建一个托管的 NameValueCollection 对象(该对象带有一个包含日期值的名称值项)。该值的名称为 ExceptionRaisedDateTime;只有在显示事件日志中的异常时,才会使用它。

返回页首
ExceptionPublisher 类


需要将从挂钩的 SetErrorInfo 中提取的 .NET 异常中的信息记录在某处 — 无论是文件、事件日志还是电子邮件。特别地,需要将前面提到的所有信息(例如,异常的属性、堆栈跟踪和任何内层异常)包含在日志中。

Microsoft 的 Patterns and Practices Group 已经专门针对此目的创建了 EMAB。如果您尚未完成有关工作,那么我强烈建议您查看其他所有可用的应用程序块,以便了解它们是否适合于在您的当前项目中使用。异常块是一种通过 ExceptionManager 类发布异常信息的简单而灵活的机制。它还使您可以创建自己的发布程序,以便向其他数据源(例如,XML 文件或数据库)发布数据。

需要调用该类中的 Publish 方法来发布异常。该方法被定义为静态方法,这将便于 .NET 客户端使用;但是,这对于 COM 客户端不够友好,因为它们无法调用静态方法。一种简单的解决方案是,使用门面模式将对该类的访问包装到另一个类中。为了使 .NET 组件更容易被 COM 客户端使用,开发人员应当遵守各种准则。其中一个准则是确保该类具有默认构造函数。创建了两个新的程序集,它们包含 ExceptionPublisher 类和 IExceptionPublisher 接口。以下代码显示了该类中的包装方法: 

public void Publish(Exception exception, NameValueCollection nameValueItems)
{
    ExceptionManager.Publish(exception, nameValueItems);
}

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网