企业库日志记录块中的扩展属性

Posted

技术标签:

【中文标题】企业库日志记录块中的扩展属性【英文标题】:Extended properties in Enterprise Library Logging Block 【发布时间】:2013-01-28 10:45:45 【问题描述】:

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

【问题讨论】:

【参考方案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: timestampnewline
Message: messagenewline
Category: categorynewline
Priority: prioritynewline
EventId: eventidnewline
Severity: severitynewline
Title:titlenewline
Machine: localMachinenewline
App Domain: localAppDomainnewline
ProcessId: localProcessIdnewline
Process Name: localProcessNamenewline
Thread Name: threadNamenewline
Win32 ThreadId:win32ThreadIdnewline
Extended Properties: dictionary(key - valuenewline)" name="Text Formatter"/>
        </formatters>

然后扩展属性数据将被记录到 FormattedMessage 列中。

这样做的缺点是扩展属性隐藏在 FormattedMessage 中。如果您想要扩展属性的更结构化表示,您可以创建自定义数据库跟踪侦听器。

有关将扩展属性记录到单独表的示例,请参阅Extended Properties Trace Listener with Custom Exception Handler。

【讨论】:

以上是关于企业库日志记录块中的扩展属性的主要内容,如果未能解决你的问题,请参考以下文章

Azure AD 中的企业应用程序缺少租户架构扩展应用程序

Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

EWS 中的扩展属性

扩展中的延迟加载属性(Swift)

属性扩展