.NET 4.6中的EventSource&事件查看器

时间:2016-06-27 12:54:09

标签: c# manifest etw etw-eventsource

我想问一个非常具体的问题,即使用System.Diagnostics.Tracing.EventSource和.NET 4.6类写入事件查看器。

过去,如果您想使用事件查看器通道,则需要编写/生成XML清单并将其注册到操作系统。这仍然是这样吗?

如果是这样,我很难找到如何让构建生成清单,我相信这可以使用EventSource nuget包,但我想使用System.Diagnostics下的in built类。如果可能,跟踪命名空间。

提前致谢。

1 个答案:

答案 0 :(得分:5)

查看NuGet上的Microsoft EventRegister Tool包:

  

此软件包包含 eventRegister.exe ,可启用验证和   注册用户定义的EventSource类。它支持BCL   事件源(派生自   System.Diagnostics.Tracing.EventSource)和NuGet事件源   (派生自Microsoft.Diagnostics.Tracing.EventSource的类。)

通过VS中的Package Management控制台安装它:

Install-Package Microsoft.Diagnostics.Tracing.EventRegister

这将注册您的Eventsource类,以便您可以写入Eventlog:

[EventSource(Name = "Samples-EventSourceDemos-EventLog")]
public sealed class MinimalEventSource : EventSource
{
    public static MinimalEventSource Log = new MinimalEventSource();

    [Event(1, Message="{0} -> {1}", Channel = EventChannel.Admin)]
    public void Load(long baseAddress, string imageName)
    {
        WriteEvent(1, baseAddress, imageName);
    }
}

enter image description here