Logging 使用带标题的企业库登录到CSV
我正在使用企业库将数据记录到CSV文件中。它写入CSV文件,但不包含标题,并将所有参数写入另一行。类似如下:Logging 使用带标题的企业库登录到CSV,logging,enterprise-library,Logging,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: 1079
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:
是否有一种方法可以格式化输出日志,使参数以表格形式列出,并带有诸如时间戳、类别等标题。标题是指文件顶部的标题?还是文件中每个记录的标题 输出格式由格式化程序模板控制。这通常在配置文件中定义。对于CSV文件,您希望使用类似于以下内容的模板:
<formatters>
<add template=""{timestamp}","{severity}","{message}""
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格式,则必须确保转义双引号。我可以通过转义双引号获得CSV格式。标题是指将标题添加到每列中。就像上面显示的时间一样,我想要写时间戳,上面的消息我想要写消息等等。如果你想要你的头是基于每个记录的,那么你可以只设置监听器的头属性。如果您只想将头放在文件的顶部,我认为这不受开箱即用的支持。您可以编写自己的侦听器来执行此操作,也可以编写脚本在日志文件关闭后添加头。