我正在尝试将侦听器附加到正在运行的进程,该进程使用EventSource
来跟踪处理事件。通过继承EventListener
并且(可能)需要调用EnableEvents
来开始接收信息,我已经创建了自己的监听器。
所有重载的第一个参数是EventSource
来配置和发送消息,但我不清楚如何在需要识别外部进程中的事件源时编写该实例。
我只是将它们作为一个概念验证,所以代码在控制台应用程序中运行,TestEventListener
只是尝试将事件写入控制台窗口。
EventSource source = null;
using (var listener = new TestEventListener())
{
listener.EnableEvents(source, EventLevel.Verbose);
Console.ReadKey();
}
答案 0 :(得分:6)
不幸的是,EventListener类不会跨进程,甚至跨AppDomains进行交谈。这不是EventListener类的目的。
相反,我建议您使用即将推出的(并且最有可能是来自MSFT的官方支持的ETW“读者”库) -
http://www.nuget.org/packages/Microsoft.Diagnostics.Tracing.TraceEvent
当你参与其中时,请查看 - http://oculus.codeplex.com/(这与TraceEvent非常相似,但有一堆不同的生成代码特殊窗口事件)