0

我正在使用 Enterprise Library 5 Logging 块来登录我的 Windows 应用程序,我还为我的日志条目定义了一些扩展属性,当我定义数据库跟踪侦听器并使用它来记录我的消息时,我的扩展属性保存在哪里?在哪个领域?

4

1 回答 1

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 中。如果您想要扩展属性的更结构化表示,您可以创建自定义数据库跟踪侦听器。

有关将扩展属性记录到单独表的示例,请参阅使用自定义异常处理程序的扩展属性跟踪侦听器

于 2013-01-28T14:59:17.757 回答