2011-04-14 27 views
0

我正在使用企業庫將數據記錄到CSV文件中。它寫入到CSV文件,但它不包括頭和它在不同的line.Something這樣寫的所有參數:使用帶有標題的企業庫登錄到CSV

Timestamp: 4/14/2011 6:41:49 PM 
Message: Starting Application 
Category: General 
Priority: -1 
EventId: 0 
Severity: Information 
Title: 
Machine: 
App Domain: EnterpriseLib.vshost.exe 
ProcessId: 10792 
Process Name: 
Thread Name: 
Win32 ThreadId:7976 
Extended Properties: 

有沒有一種方法來格式化輸出日誌,以便在列出的參數一個表格形式,帶有諸如Timestamp,Category等等的標題。

回答

0

通過標題你是指在文件頂部的標題?或者文件中每個記錄的標題?

輸出格式由格式化程序模板控制。這通常在配置文件中定義。對於CSV文件,你會想使用類似模板:

<formatters> 
    <add template="&quot;{timestamp}&quot;,&quot;{severity}&quot;,&quot;{message}&quot;" 
    type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null" 
    name="SimpleTextFormatter" /> 
</formatters> 

這將導致以下的輸出:

「2011年4月14日7時34分53秒 PM」, 「信息」,「這是 的消息!」

您可以使用配置工具插入您想要記錄的任何其他標記(例如{category})。

請注意,如果你想要一個正確的CSV格式,你將不得不確保雙引號轉義。

+0

我可以通過轉義雙引號來獲得CSV格式。標題我的意思是將標題添加到每列。像上面所顯示的時間,我想要「時間戳」寫入,上面的消息我想要「消息」寫如此。 – 2011-04-18 18:50:22

+0

如果你想你的標題是在每個記錄的基礎上,那麼你可以設置頭的屬性監聽器。如果您只想在文件頂部標題,我認爲這不是開箱即用的支持。您可以編寫自己的偵聽器來執行此操作,也可以編寫腳本,在日誌文件關閉後添加標題。 – 2011-04-18 20:25:25