使用带有标头的Enterprise Library记录到CSV

时间:2011-04-14 18:53:35

标签: logging enterprise-library

我正在使用Enterprise Library将数据记录到CSV文件中。它写入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: 

是否有办法格式化输出日志,以便在表格格式中列出参数,并带有时间戳,类别等标题,等等。

1 个答案:

答案 0 :(得分: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>

这将导致以下输出:

  

“4/14/2011 7:34:53   PM“,”信息“,”这是   消息!“

您可以使用配置工具插入您要记录的任何其他令牌(例如{category})。

请注意,如果您需要正确的CSV格式,则必须确保转义双引号。