我尝试查看调试本地服务结构群集时在“诊断事件”选项卡中显示的相同消息。可以直接保存,也可以保存到etl文件中。
我已经使用ServiceEventSource类发送了自定义日志消息,该类是在使用服务结构状态服务模板时创建的。在调试模式下运行服务时,我可以在诊断事件选项卡中清楚地看到日志消息。
我尝试使用LinqPad,这很好,但是我似乎无法A)查找会话名称,或者B)在调试服务结构服务时查找保存任何.etl文件的位置。 。我也尝试过使用PerfView捕获并创建.etl文件。我使用“机器范围的”进行聚焦,然后将etl数据发送到我的桌面。我保留了默认的500mb文件,该文件在Visual Studio诊断事件选项卡中看到消息之前没有被打过。然后,我停止了PerfView,将.etl文件加载到了LinqPad中,该文件可以解析,但是我找不到诊断事件选项卡中显示的任何事件。我确实看到了很多系统范围的消息,所以PerfView确实收集了一些东西。
我希望收集事件数据,或使用LinqPad和TX扩展名(理想情况下)传输事件数据。但是,我不熟悉ETW,也不清楚如何设置流,或如何将数据收集并将其保存到.etl文件中。
答案 0 :(得分:1)
我能够收集这些数据。使用PerfView时,我可以过滤“其他提供程序”。我发现通过“提供商浏览器”搜索时找不到与我的项目匹配的提供商的名称。但是,我手动键入了提供程序的名称,该名称是在从EventSource继承的类中找到的:[EventSource(Name = "My.Provider.Name.Here")]
。开始收集,运行应用程序并检查结果之后,我发现我的日志消息已收集。也许这些信息会帮助另一个试图做同样事情的人。