我不认为在TraceSource上有自动刷新选项,就像用于跟踪一样。
是否有一种方法可以在每次写完后不需要手动刷新而自动刷新?
顺便说一句,我使用TextWriterTraceListener作为我的跟踪源监听器,而不是使用config。
发布于 2014-06-11 13:36:44
在内部,TraceSource
使用Trace
类的AutoFlush
设置。例如,资料来源 of TraceSource.TraceEvent
方法:
for (int j = 0; j < this.listeners.Count; j++)
{
TraceListener listener = this.listeners[j];
listener.TraceEvent(eventCache, this.Name, eventType, id, format, args);
if (Trace.AutoFlush)
{
listener.Flush();
}
}
所以,您所需要做的就是将Trace.AutoFlush
设置为true。顺便说一句,MSDN中也有同样的说法。
跟踪监听器使用缩进、IndentSize和AutoFlush类属性的值来格式化跟踪输出。
发布于 2014-06-11 13:34:34
请试试这个!
TextWriterTraceListener listener = new TextWriterTraceListener(@"C:\MyFolder\Temp.log");
StreamWriter sw = listener.Writer as StreamWriter;
if (sw != null) sw.AutoFlush = true;
发布于 2017-01-25 04:21:30
StreamWriter sw = File.AppendText(path);
traceSource.Listeners.Add(new TextWriterTraceListener(sw) { TraceOutputOptions = TraceOptions.DateTime });
https://stackoverflow.com/questions/24172868
复制相似问题