2010-12-03 66 views
4

配置文件:TextWriterTraceListener會不起作用

<system.diagnostics> 
    <trace> 
     <listeners> 
     <add name="Console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"></add> 
     <add name="Text" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\uat\logs\bifit.log" traceOutputOptions="DateTime"></add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

代碼:

static void Main(string[] args) 
     { 
      try 
      { 
       Trace.WriteLine("Running BiFit Test Server."); 
      } 
     } 

我可以看到cosole窗口中的文字。該文件被創建,但它是空的。 我記得有些地方像Autoflush屬性?

回答

10

你記錯 - 它是trace元素定義:

<trace autoflush="true"> 
    ... 
</trace> 

自動沖洗 - 可選屬性。指定在每次寫入操作後,跟蹤偵聽器是否自動刷新輸出緩衝區。

+0

謝謝,但此屬性適用於所有聽衆。但控制檯監聽器的工作原理與文件不同。 – 2010-12-03 13:29:50

+0

@Captain漫畫 - 恐怕不能改變它的工作方式。如果控制檯輸出緩衝區也被刷新,這是否重要? – Oded 2010-12-03 13:31:24

3

我認爲它是:

<system.diagnostics> 
    <trace autoflush="true"> 
     ... 
    </trace> 
</system.diagnostics> 
2

你可以稱之爲Trace.Flush(),一旦你與你的Trace.Write類型的操作來完成。