扩展.NET 2.0跟踪系统.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
扩展.NET 2.0跟踪系统

扩展.NET 2.0跟踪系统   摘 要:微软公司随VISUAL STUDIO 2005 发布了.NET 2.0,该系统较.NET 1.1增加了大量实用方便的功能和新特性,跟踪系统部分同样大大增强了功能。如何用好这些功能,特别是定制这些功能,使之更好地为我们服务,成为我们的当前任务。本文将探讨一下这方面的问题。   关键词: TraceSource类 Switch类 StopWatch精确度 堆栈信息 线程 进程 远程过程调用      一、跟踪系统概念介绍      在.NET 2.0中,除了用来在程序中输出调试和跟踪信息的Debug类和Trace类外,还有TraceSource类。TraceSource类是.NET 2.0新添加的类,微软公司建议在新开发的程序中使用TraceSource类来产生调试跟踪信息。调试开关用来过滤信息的输出,跟踪侦听器(TraceListener)类用来向外界真正输出调试信息。所有类的参数都可通过程序配置文件进行设置,而不需要重新编译程序,修改程序配置信息即可改变该程序的调试跟踪信息输出的行为。   跟踪侦听器用来收集、存储和路由跟踪消息,是真正对外输出日志信息的类对象。系统提供的跟踪侦听器往往不能满足我们在实际应用程序中的需要。例如,在无人职守环境下,服务程序的执行日志需要输出到能够自动切换的具有固定大小的日志文件中,而以上系统提供的跟踪侦听器均无法完成该任务。此时需要制定自己的跟踪侦听器。在使用Debug、Trace和TraceSource对象时,系统可根据配置信息为以上对象生成跟踪侦听器。如果没有配置信息,系统将会为Debug和Trace生成缺省的跟踪侦听器(DefoultTraceListener),该侦听器将消息发送到调试器的消息窗口(Visual studio的debug窗口)。系统还提供了EventLogTraceListener、ConsoleTraceListener、TextWriteTraceListener、DelimitedListTraceListener和XmlWriterTraceListener跟踪侦听器。Debug、Trace和TraceSource所使用的跟踪侦听器被放在各自的Listeners属性中,可通过编程来访问和维护该侦听器列表。   所有的跟踪侦听器均派生自TraceListener类,该类是抽象类,在用户制定的派生类中,需要重载和消息输出有关的函数包括:TraceData(),TraceEvent(),Write(),WriteLine(),Fail()。这些函数负责接受其它程序部件调用,输出跟踪消息。   TraceListener类还实现了IDisposable接口,该???口中的Dispose()和Finalize()被用来关闭和释放资源。   完成自定义跟踪侦听器后,可将该侦听器放在单独的动态链接库中,方便其它程序共享该组件。实例化该侦听器,可通过配置文件来完成,也可通过编程,手工实例化侦听器对象,再将侦听器添加到TraceSource或Trace的Listeners属性中。      二、定义自己的跟踪开关类      跟踪开关用于启用、禁用和筛选跟踪输出。它们是存在于代码中的对象,可以通过.config文件从外部进行配置。.NET Framework中提供了三种类型的跟踪开关:BooleanSwitch类、TraceSwitch类和SourceSwitch类。BooleanSwitch类用作切换开关,可启用或禁用各种跟踪语句。TraceSwitch和SourceSwitch类用于为特定的跟踪级别启用跟踪开关,以便显示为该级别及其下的所有级别指定的Trace或TraceSource消息。如果禁用此开关,则不会显示跟踪消息。   跟踪开关作用于TraceListener类,通过跟踪侦听器的Filter属性,可访问该侦听器的跟踪开关对象。当系统提供的跟踪开关类不能满足程序要求时,需要开发用户自己的跟踪开关。所有的跟踪开关对象都派生自Switch类,派生类中必须实现SwitchSetting方法和OnValueChanged方法。Switch类的Value属性用来设置或返回用来过滤消息的值的字符串。对Value属性的赋值将会调用OnValueChanged方法,在该方法中,需要将字符串的Value值转换成int型的值,用来设置SwitchSetting属性。   同用户自定义跟踪侦听器一样,建议将用户自定义跟踪开关放到单独的动态链接库中,方便不同的应用程序共享该组件。同样,可通过配置文件,为跟踪侦听器对象生成对应的跟踪开关对象。      三、用StopWatch来精确测量代码执行的时间      通

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档