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.