TraceSource -在没有配置文件的情况下将自动刷新设置为true
本文关键字:刷新 设置 true 情况下 配置文件 TraceSource | 更新日期: 2023-09-27 18:08:08
我在TraceSource上没有看到像Trace那样的自动刷新选项。
是否有一种方法可以自动刷新,而不必在每次写入后手动刷新?
顺便说一句,我使用TextWriterTraceListener作为我的跟踪源侦听器,而不是使用配置xml。
TraceSource
内部使用Trace
类的AutoFlush
设置。例如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:
跟踪侦听器使用trace类属性的值缩进、缩进大小和自动刷新以格式化跟踪输出。
请尝试一下!
TextWriterTraceListener listener = new TextWriterTraceListener(@"C:'MyFolder'Temp.log");
StreamWriter sw = listener.Writer as StreamWriter;
if (sw != null) sw.AutoFlush = true;
StreamWriter sw = File.AppendText(path);
traceSource.Listeners.Add(new TextWriterTraceListener(sw) { TraceOutputOptions = TraceOptions.DateTime });