Log4Net:枚举 GlobalContext 属性?
Log4Net: Enumerating GlobalContext properties?
我正在尝试将 Loggly appender 实用程序用于 log4net。
我发现他们的代码通过 ThreadContext
属性进行枚举,并将它们附加到通过网络发送到 loggly 服务的有效负载中。好主意!但是,相同的功能未应用于 GlobalContext
属性。弄清楚这是他们的失误,我尝试枚举 GlobalContext
属性并将它们也添加到有效负载中。
然而,这已被证明是一个问题。在访问 ThreadContext
属性时,似乎没有任何方法可以访问键和关联值。
如何枚举GlobalContext
属性?
我看到的唯一方法是检索全局上下文的属性 class (GlobalContext.Properties
which returns a GlobalContextProperties
class) 和通过反射得到内部方法GetReadOnlyProperties()
返回的ReadOnlyPropertiesDictionary
。拥有 ReadOnlyPropertiesDictionary
后,您可以迭代键和值
据我所见,ThreadContext
或多或少具有相同的机制,因此您可以以 ThreadContext
枚举为例,将其移植到 GlobalContext
.
我正在尝试将 Loggly appender 实用程序用于 log4net。
我发现他们的代码通过 ThreadContext
属性进行枚举,并将它们附加到通过网络发送到 loggly 服务的有效负载中。好主意!但是,相同的功能未应用于 GlobalContext
属性。弄清楚这是他们的失误,我尝试枚举 GlobalContext
属性并将它们也添加到有效负载中。
然而,这已被证明是一个问题。在访问 ThreadContext
属性时,似乎没有任何方法可以访问键和关联值。
如何枚举GlobalContext
属性?
我看到的唯一方法是检索全局上下文的属性 class (GlobalContext.Properties
which returns a GlobalContextProperties
class) 和通过反射得到内部方法GetReadOnlyProperties()
返回的ReadOnlyPropertiesDictionary
。拥有 ReadOnlyPropertiesDictionary
后,您可以迭代键和值
据我所见,ThreadContext
或多或少具有相同的机制,因此您可以以 ThreadContext
枚举为例,将其移植到 GlobalContext
.