WPF跟踪事件问题

时间:2014-07-08 09:50:25

标签: c# wpf trace listeners

我有一些问题过滤器跟踪事件。这是我的代码:

PresentationTraceSources.Refresh();
Stream myFile = File.Create("trace.txt");
listener = new TextWriterTraceListener(myFile);
PresentationTraceSources.RoutedEventSource.Listeners.Add(listener);
PresentationTraceSources.RoutedEventSource.Switch.Level = SourceLevels.Warning;
PresentationTraceSources.RoutedEventSource.TraceEvent(TraceEventType.Warning, 0, "Test my warning");

然后我运行我的应用程序并期望文件trace.txt将包含“Test my warning”字符串,但此文件为空。但是,如果我将代码中的一个字符串更改为

PresentationTraceSources.RoutedEventSource.Switch.Level = SourceLevels.All;

我可以在名为“trace.txt”的文件中看到字符串“Test my warning”。但这总是追踪所有事件类型,而不仅仅是警告。但我想只跟踪警告。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

只需添加:

 PresentationTraceSources.RoutedEventSource.Flush();

最后,它适用于任何源级别。

实际上,只要你有一个级别而不是SourceLevels.All,你就必须刷新你的TraceSource以便在你的听众中写下来。