2015-02-05 72 views
0

我將使用Trace的日誌記錄添加到新的ASP.NET網站。當我在本地運行項目時,日誌按預期工作。當我發佈項目時(通過通過Visual Studio進行文件系統發佈),該站點將成功登錄一段時間(從幾秒到幾分鐘),但最終會停止寫入輸出文件。帶TextWriterTraceListener的Trace.WriteLine()最終會停止在已發佈的ASP.NET網站上工作

這裏是我如何初始化我TraceListener在我Global.asax.cs

protected void Application_Start() 
{ 
    textWriterTL = new TextWriterTraceListener(logFilePath); 
    Trace.Listeners.Add(textWriterTL); 
    Trace.AutoFlush = true; 

    ... 
} 

後來,在一個Web API控制器的方法,我寫信給Trace像這樣:

Trace.WriteLine("An error occurred"). 

我不感覺我正在做非常規的事情。爲什麼我的網站在一段時間後停止記錄?

回答

0

這是因爲在Application_Start方法,你souldn't實例的任何類,根據MSDN文檔:

你應該在應用程序啓動僅設置靜態數據。不要設置 任何實例數據,因爲它只能用於創建的HttpApplication類的第一個 實例。

我建議設置Web.config中的TraceListener,就像這個示例:

<system.diagnostics> 
    <trace autoflush="true"> 
     <listeners> 
     <add type="System.Diagnostics.TextWriterTraceListener" name="FileListener" initializeData="MyLog.log" /> 
     <remove name="Default" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

參考:https://msdn.microsoft.com/en-us/library/ms178473.aspx

相關問題