gpt4 book ai didi

c# - System.Diagnostics.Tracing.EventSource 与 System.Diagnostics.Trace

转载 作者:行者123 更新时间:2023-11-30 23:13:37 25 4
gpt4 key购买 nike

我不确定我是否理解 ETW 使用 System.Diagnostics.Tracing 和使用 System.Diagnostics.Trace 之间的主要区别。我知道使用它们我可以将事件转储到一些输出流中,并且我可以使用各种监听器来拦截这些数据——包括自定义监听器。

但除了 ETW 的基础结构嵌入到 Windows 中并且我可以开箱即用地使用 WPR 和 PerfView,我看不出有什么不同。

我什么时候会选择一个而不是另一个?

最佳答案

System.Diagnostics.TracingTrace 更完整:

  • 事件按事件源分开,这意味着您不必订阅所有事件(有利于性能)
  • 在源内部,事件按名称和“EventLevel”分隔,这意味着您可以过滤更多
  • 事件是结构化的(它们不仅仅是一个字符串,它们还可以有负载来提供更多信息)

另一方面,System.Diagnostic.Trace 是一个简单的记录器:您只能记录字符串,并且不能应用任何类型的过滤(它要么对所有消息启用,要么禁用)对全部)。但它具有 Visual Studio 调试器默认支持的优势(因此当您附加到进程时,您可以直接在输出窗口中看到跟踪事件)。

我要补充一点,开箱即用的 ETW 监听器是 System.Diagnostics.Tracing 的一个很好的好处,但从技术上讲,没有什么可以阻止您为 编写自己的 ETW 监听器>跟踪

关于c# - System.Diagnostics.Tracing.EventSource 与 System.Diagnostics.Trace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com