我没有看到TraceSource上的autoflush选项,就像Trace一样 有没有办法自动刷新而不必在每次写入后手动刷新?
BTW我正在使用TextWriterTraceListener作为我的跟踪源侦听器而不使用config xml。
答案 0 :(得分:5)
内部TraceSource
使用AutoFlush
类的Trace
设置。例如。 TraceSource.TraceEvent
方法的sources:
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中声明了相同的BTW:
跟踪侦听器使用Trace类属性的值 缩进,IndentSize和AutoFlush以格式化跟踪输出。
答案 1 :(得分:0)
请试试这个!
TextWriterTraceListener listener = new TextWriterTraceListener(@"C:\MyFolder\Temp.log");
StreamWriter sw = listener.Writer as StreamWriter;
if (sw != null) sw.AutoFlush = true;
答案 2 :(得分:0)
StreamWriter sw = File.AppendText(path);
traceSource.Listeners.Add(new TextWriterTraceListener(sw) { TraceOutputOptions = TraceOptions.DateTime });