我一直致力于使用.NET4.5新功能ETW(EventSource)。我无法使用 perfmon->Data Collector Sets 将其显示在跟踪提供程序列表中。我能够使用 perfview 查看日志。
我能够使用 EventSource 类的静态方法GenerateManifest 生成清单。这将在 EventSource 类中提供 myevents 的清单,但不包含有关通道的详细信息。
我的问题是如何在生成 perfmon 跟踪会话的清单文件后添加通道特定信息?我还想使用 Perfmon 的跟踪会话来启用提供程序而不是 perfview。
任何意见都非常感谢。
MS 发布了一个 Nuget 包,它在构建后注册 EventSource 类:
http://blogs.msdn.com/b/dotnet/archive/2013/08/09/announcing-the-eventsource-nuget-package-write-to-the-windows-event-log.aspx http://blogs.msdn.com/b/dotnet/archive/2013/08/09/announcing-the-eventsource-nuget-package-write-to-the-windows-event-log.aspx
注册您的事件源
安装 EventSource NuGet 包时,构建步骤
前面提到的为每个生成以下文件
您的应用程序中的事件源:
<AssemblyName>.<EventSourceTypeName>.etwManifest.man
<AssemblyName>.<EventSourceTypeName>.etwManifest.dll.
这些文件需要向操作系统注册才能启用
渠道支持。为此,您可以在以下命令之后运行以下命令
文件位于最终部署位置:
wevtutil.exe im <EtwManifestManFile> /rf:"<EtwManifestDllFile>" /mf:"<EtwManifestDllFile>"
一旦执行该注册命令,所有后续调用
MinimalEventSource.Log.Load(),从该机器上的任何进程,将
自动在 Windows 事件日志中生成事件。
注册后,您应该在所有读取已安装提供程序的工具中看到它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)