EventSource与EventProvider

时间:2017-02-17 12:32:47

标签: c# .net etw event-viewer

EventSourceEventProvider类之间的主要区别是什么?

我理解这两个类都是ETW的事件提供者。如果两者之间没有关键差异,那么利弊是什么。

我使用EventSource类只是因为我在网上找到了更多的示例/文档,并且实现Channel支持(写入事件查看器中的默认通道 - 管理,操作,分析和调试)似乎更直接,因为EventRegister class自动创建清单(描述为here)。

1 个答案:

答案 0 :(得分:3)

在.NET 3.5中,EventProvider类是使用ETW进行跟踪的唯一选项。在documentation状态下,您必须为自定义事件创建一个Instrumentation Manifest文件,该文件描述了邮件中的数据类型。这不是一件容易的事,它需要使用单独的工具,例如Manifest Generator(ecmangen.exe)。有关详细信息,请参阅this post

在.NET 4.5中添加了EventSource类,它引入了simpler approach来使用ETW编写自己的事件。它们不是创建这些清单文件,而是为您自动创建,从而节省了开销。

鉴于上述情况,我没有理由使用EventProvider。正如您所提到的,EventSource更具记录性,更易于使用。