我正在寻找一种方法来实时查看使用EventProviderTraceListener记录的事件。我可以使用logman启动&停止跟踪会话,然后解码生成的.etl文件,但我希望看到事件到达。
以下是我用于测试的示例C#类:
public class TraceTest
{
private static Guid ProviderGuid = new Guid("{2EC22694-F8D3-4066-B089-300DF0749C71}");
private static EventProviderTraceListener listener = new EventProviderTraceListener(ProviderGuid.ToString(), Test Listener", "::");
private static TraceSource source = new TraceSource("TestSource", SourceLevels.All);
public TraceTest()
{
source.Listeners.Add(listener);
source.TraceInformation("Tracing prototype.");
}
}
使用traceview,我可以通过输入guid来启动新的跟踪会话,但我不知道在哪里查找tmf文件以便能够解码消息 - 我看到它们到了,但是它们被记录了“找不到格式信息”。
答案 0 :(得分:1)
由于您没有直接登录ETW,您可以编写自己的TraceListener并添加它,就像添加EventProviderTraceListener(请参阅here)或使用您的app.config一样(请参阅here )。或者您可以使用ETW(如logman和traceview)与ETWTraceEventSource之类的here进行此操作,但需要管理员权限才能启动跟踪。