我想问一个非常具体的问题,即使用System.Diagnostics.Tracing.EventSource和.NET 4.6类写入事件查看器。
过去,如果您想使用事件查看器通道,则需要编写/生成XML清单并将其注册到操作系统。这仍然是这样吗?
如果是这样,我很难找到如何让构建生成清单,我相信这可以使用EventSource nuget包,但我想使用System.Diagnostics下的in built类。如果可能,跟踪命名空间。
提前致谢。
答案 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);
}
}