2014-06-11 67 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

相關問題