我有一个编写一些ETW事件的应用程序。使用特定名称创建事件提供程序,例如:
[EventSource(Name = "Test-SourceLogger")]
public class EventSourceLogger : EventSource
然后我在此日志中有各种事件,其中记录了一些数据。此外,日志是通过在上面创建自定义跟踪侦听器的跟踪写入的。然后,此侦听器将编写事件。
现在,我想在事件查看器中查看这些事件,但找不到。基本上,查看器中的左窗格选项都不显示日志。我搜索了一下,看来我们在某处必须在注册提供程序时在检测清单中指定通道。我使用的是.NET 4.5框架,因此无需显式注册提供程序。
答案 0 :(得分:1)
您需要像这样设置Event属性的Channel属性:
[EventSource(Name = "Samples-EventSourceDemos-EventLog")]
public sealed class MinimalEventSource : EventSource
{
public static MinimalEventSource Log = new MinimalEventSource();
[Event(601, Channel = EventChannel.Admin, Message = "Unhandled exception occurred. Details: {0}", Keywords = EventKeywords.None, Level = EventLevel.Critical)]
private void UnhandledException(string exceptionMsg)
{
this.IsEnabled().Dump();
this.WriteEvent(601, exceptionMsg);
}
}
频道0表示无,请参见docs:
Admin 16管理员日志通道。
Analytic 18分析渠道。
调试19调试通道。
无0未指定频道。
运营17运营渠道。
但是,AFAIK,您仍然需要注册事件源,请参见this doc