2017-02-17 43 views
4

EventSourceEventProvider類之間的主要區別是什麼?EventSource vs EventProvider

我知道這兩個類都是ETW的事件提供者。如果兩者不存在重大差異,那麼有什麼優點和缺點。

我使用EventSource類是因爲我在網上發現了更多的示例/文檔,並且實現Channel支持(寫入事件查看器中的默認通道 - 管理,操作,分析和調試)似乎更直接,因爲EventRegister類自動創建清單(描述爲here)。

+0

好問題。看起來像Provider類是第一次嘗試使ETW在.net中可用(在3.5中添加,而EventSource在4.5中添加)。但是,只是猜測 – magicandre1981

回答

2

在.NET 3.5中,EventProvider類是使用ETW進行跟蹤的唯一選項。正如documentation所述,您必須爲您的自定義事件創建一個Instrumentation Manifest文件,該文件描述了消息中的數據類型。這不是那麼容易的任務,它需要使用單獨的工具,例如Manifest Generator(ecmangen.exe)。欲瞭解更多信息,請參閱this post

在.NET 4.5中增加了EventSource類,它引入了simpler approach來使用ETW編寫自己的事件。而不是創建這些清單文件,它們會自動爲您創建,節省開銷。

我沒有看到任何理由使用EventProvider給出上述。正如你所提到的,EventSource是更多的文件記錄和使用更容易。