我正在使用Enterprise Library 5 Logging块登录我的Windows应用程序,我也为我的日志条目定义了一些扩展属性,当我定义数据库跟踪监听器,并使用它来记录我的消息,保存在哪里扩展属性?在哪个领域?
答案 0 :(得分:1)
扩展属性不会使用现成的数据库跟踪侦听器记录到单独的列或表中。
要记录扩展属性,请配置记录扩展属性的格式化程序:
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="Timestamp: {timestamp}{newline}
Message: {message}{newline}
Category: {category}{newline}
Priority: {priority}{newline}
EventId: {eventid}{newline}
Severity: {severity}{newline}
Title:{title}{newline}
Machine: {localMachine}{newline}
App Domain: {localAppDomain}{newline}
ProcessId: {localProcessId}{newline}
Process Name: {localProcessName}{newline}
Thread Name: {threadName}{newline}
Win32 ThreadId:{win32ThreadId}{newline}
Extended Properties: {dictionary({key} - {value}{newline})}" name="Text Formatter"/>
</formatters>
然后将扩展属性数据记录到FormattedMessage列中。
这样做的缺点是扩展属性隐藏在FormattedMessage中。如果您想要更加结构化的扩展属性表示,您可以创建自定义数据库跟踪侦听器。
有关将扩展属性记录到单独表格的示例,请参阅Extended Properties Trace Listener with Custom Exception Handler。