2. 使用EventSource跟踪

本文介绍了.NET中的EventSource类,它是.NET 4.5引入的用于跟踪的新机制,基于Windows的Event Tracing for Windows (ETW)。EventSource允许在系统范围内快速传递消息,支持在运行时配置跟踪级别。文章详细讨论了ETW提供程序、ETW清单、ETW关键字、任务、操作码、事件源、事件方法和事件级别等概念,并提供了简单使用EventSource的示例。同时,文章提到了用于分析跟踪信息的工具,如logman和PerfView。
摘要由CSDN通过智能技术生成

利用跟踪功能可以从正在运行的应用程序中查看消息。为了获得关于正在运行的应用程序的信息,可以在调试器中启动应用程序。在调试过程中,可以单步执行应用程序,在特定的代码行上设置断点,在满足某些条件时设置断点。调试的问题是包含发布代码的程序与包含调试代码的程序以不同的方式运行。例如,程序在断点处停止运行时,应用程序的其他线程也会挂起。另外,在发布版本中,编译器生成的输出进行了优化,因此会产生不同的效果。在经过优化的发布代码中垃圾收集器比在调试代码中更加积极。方法内的调用次序可能发生变化,甚至一些方法会被彻底删除,改为就地调用。此时也需要从程序的发布版本中获得运行时信息。跟踪消息要写入调试代码和发布代码中。

下面的场景描述了跟踪功能的作用。在部署应用程序后,它运行在一个系统中时没有问题,而在另一个系统上很快出现了问题。在出问题的系统上打开详细的跟踪功能,就会获得应用程序中所出现问题的详细信息。在运行没有问题的系统上,将跟踪信息配置为把错误消息重定向到Windows事件日志系统中。系统管理员会查看重要的错误,跟踪功能的系统开销非常小,因为仅在需要时配置跟踪级别。

.NET中的跟踪有相当长的历史。.NET的第一个版本只有简单的跟踪功能和Trace类,二.NET 2.0对跟踪进行了巨大的改进,引入了TraceSource类。TraceSource背后的架构非常灵活,分离出了源代码、侦听器和一个开关,根据一组跟踪级别来打开和关闭跟踪功能。

从.NET 45开始,又引入了一个新的跟踪类EvenSource,并在.NET 4.6中增强。这个类在NuGet包Sytem.Diagnostics的System.Diagnostics.Tracing名称空间中定义。

新的跟踪架构基于Windows Vista中引入的Event Tracin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值