2012-06-04 33 views
4

我在應用程序中使用記錄器來寫入文件。源,開關和聽衆都在app.config文件中被定義如下:每天使用TraceSource寫入新的日誌文件

<system.diagnostics> 
    <sources> 
     <source name="LoggerApp" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch"> 
     <listeners> 
      <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="myListener.log" /> 
     </listeners> 
     </source> 
    </sources> 
    <switches> 
     <add name="sourceSwitch" value="Information" /> 
    </switches> 
    </system.diagnostics> 

裏面,我的.cs代碼,我用的是記錄如下:

private static TraceSource logger = new TraceSource("LoggerApp"); 
logger.TraceEvent(TraceEventType.Information, 1, "{0} : Started the application", DateTime.Now); 

我會得到什麼要每天創建一個新的日誌文件,而不是每次都寫入同一個日誌文件?

+3

一些伐木工人支持這一開箱(eglog4net) - 你可能要考慮的,與其跟蹤記錄 – BrokenGlass

回答

4

我每天都需要做些什麼來創建新的日誌文件,而不是每次都寫入同一個日誌文件?

您必須自己製作TraceListener而不是使用TextWriterTraceListener。這將允許您的TraceListener實現每天更改日誌文件,或執行任何其他自定義行爲。

-1
Try use: 

<system.diagnostics> 
    <sources> 
     <source name="LoggerApp" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch"> 
     <listeners> 
      <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="myListener-{0:dd}-{0:MM}-{0:yyyy}.log" /> 
     </listeners> 
     </source> 
    </sources> 
    <switches> 
     <add name="sourceSwitch" value="Information" /> 
    </switches> 
    </system.diagnostics> 
+0

這對我沒有工作:initializeData =「myListener- {0:DD} - {0 :MM} - {0:yyyy} .log「 – Robbie

+0

究竟什麼不行? – zrabzdn

+1

initializeData =「myListener- {0:dd} - {0:MM} - {0:yyyy} .log」在配置中對我無效。它拋出一個NotSupportedException異常的消息'給定路徑的格式不被支持' – Robbie