我有一个演示解决方案,它使用System.Diagnostics.Tracing.EventSource类引发事件。我上课的课程如下: -
[EventSource(Guid = "B6741490-9F53-4620-A45C-49004C1B4444", Name = "DemoEvent")]
sealed public class DemoEventSource : EventSource
{
[Event(1, Level = EventLevel.LogAlways, Keywords = EventKeywords.None)]
public void RaiseEvent()
{
this.WriteEvent(1, "Found");
}
}
我按照here给出的步骤使用PerfView工具查看此解决方案生成的事件。我在PerfView的additionalProvider部分中给出了*DemoEvent
。但是,我无法在PerfView的输出中看到这些事件。谁能在这帮助我?
答案 0 :(得分:1)
您的方法的参数类型和您对write事件的调用的参数类型必须匹配(为事件ID添加一个整数第一个参数),以便自动生成的事件源元数据匹配。即。
[Event(1, Level = EventLevel.LogAlways, Keywords = EventKeywords.None)] public void RaiseEvent(string message) { this.WriteEvent(1, message); }
避免提供GUID。建议在the Event Source programming guide from the .NET authors中仅提供名称,并从名称中自动生成GUID。
确保使用the latest PerfView release from GitHub而不是Microsoft Downloads上的过时版本。