我不确定我是否理解使用 System.Diagnostics.Tracing 和使用 System.Diagnostics.Trace 的 ETW 之间的主要区别。据我了解,通过它们,我可以将事件转储到某些输出流上,并且我可以使用各种侦听器来拦截此数据 - 包括自定义侦听器。
但除了 ETW 的基础设施嵌入到 Windows 中并且我可以开箱即用地使用 WPR 和 PerfView 之外,我没有看到任何区别。
我什么时候会选择其中之一而不是另一个?
System.Diagnostics.Tracing比以下更完整Trace:
另一方面,System.Diagnostic.Trace它是一个简单的记录器:您只能记录字符串,并且不能应用任何类型的过滤(它要么对所有消息启用,要么对所有消息禁用)。但它的优点是 Visual Studio 调试器默认支持(因此当您附加到进程时,您可以直接在输出窗口中看到跟踪事件)。
我想补充一点,提供开箱即用的 ETW 侦听器是 的一个很好的好处System.Diagnostics.Tracing,但从技术上讲,没有什么可以阻止您为 编写自己的 ETW 侦听器Trace。
| 归档时间: |
|
| 查看次数: |
3060 次 |
| 最近记录: |