5

我正在尝试将一个侦听器附加到一个正在运行的进程,该进程使用一个EventSource来跟踪处理事件。EventListener我已经通过继承和(大概)需要调用EnableEvents来开始接收信息来创建自己的监听器。

所有重载的第一个参数是EventSource配置和发送消息,但我不清楚当它需要识别外部进程中的事件源时如何组合该实例。

我只是将其作为概念验证组合在一起,因此代码在控制台应用程序中运行,并且TestEventListener只是尝试将事件写入控制台窗口。

EventSource source = null;

using (var listener = new TestEventListener())
{
    listener.EnableEvents(source, EventLevel.Verbose);

    Console.ReadKey();
}
4

1 回答 1

7

不幸的是,EventListener 类不跨进程,甚至跨 AppDomains。这不是 EventListener 类的目的。

相反,我建议您使用即将推出的(很可能是来自 MSFT 的官方支持的 ETW“阅读器”库)——

http://www.nuget.org/packages/Microsoft.Diagnostics.Tracing.TraceEvent

当您使用它时,请查看 - http://oculus.codeplex.com/(这与 TraceEvent 非常相似,但有一堆不同的生成代码特殊 Windows 事件)

于 2013-10-29T21:10:25.007 回答