2014-06-11 66 views

回答

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指出:

跟踪侦听使用Trace类属性的值 缩进,IndentSize,和自动冲洗格式化跟踪输出。

+1

谢谢你的工作 – erotavlas

0

请试试!

TextWriterTraceListener listener = new TextWriterTraceListener(@"C:\MyFolder\Temp.log"); 
StreamWriter sw = listener.Writer as StreamWriter; 
if (sw != null) sw.AutoFlush = true; 
+3

当你从复制粘贴的东西[其他网站](http://social.msdn.microsoft.com/Forums/vstudio/en-US/325e84cd-e2da-4c4e-8304-818a176e2a39/how-to-flush-tracesource-authomatically)其良好的添加链接和一些解释 –

0
StreamWriter sw = File.AppendText(path); 

traceSource.Listeners.Add(new TextWriterTraceListener(sw) { TraceOutputOptions = TraceOptions.DateTime }); 
+1

感谢您的回答。为了使它更有用,最好包含一些解释,说明为什么你的代码解决了OP的原始问题,甚至为什么它是比已发布的答案更好的解决方案。 – Tom

相关问题