【问题标题】:How to implement a sample log4net repository如何实现示例 log4net 存储库
【发布时间】:2010-12-27 16:52:50
【问题描述】:

如何为我的 XML 文件实现自定义 LOG4NET 解析器。我的 XML 文件包含:
(1) appender 元素的额外属性
(2) 对一些需要在运行时设置的appender的元素进行自定义替换。

例如:

<appender name=... type=... mode="something">
<some-property-of-appender>${MyValueForThisPropertyFromDB}</some-property-of-appender>
</appender>

我已经读到我应该使用 LoggerRepositorySkeleton 来实现一个自定义存储库,但不知道如何将整个事情放在一起。有什么建议吗?

【问题讨论】:

    标签: c# configuration log4net configuration-files


    【解决方案1】:

    由于您尝试从数据库初始化大部分 log4net 配置,因此最简单的方法是使用 configure log4net from code。然后,您将完全控制您使用的参数值以及它们的来源。

    【讨论】:

    • 谢谢,但我并不是真的在寻找附加程序。如果我沿着这条路线走,我将不得不更改 log4net 的几乎所有附加程序。理想情况下,我想在创建 appender 之前拦截并通过查找我的数据库中的值来更改所有参数。然后我想将我必须的内容传递给 log4net,以便它可以继续初始化
    • 只是为了澄清上述内容。我认为我需要以某种方式替换 log4net.config 中标记为 ${some-key-to-lookup} 的所有属性和元素值,当它在 log4net 初始化 appender 之前由 log4net 加载时。然后 log4net 应该用我的解析值初始化 appender 并继续下一个 appender 并重复。
    • 啊,我明白了。我已经相应地修改了我的答案
    • 谢谢,是的,这就是我要做的事情。以编程方式完成大部分工作 - 只是想知道是否有更简单的方法来做到这一点。只是希望学习如何使用 LoggerRepositorySkeleton 来做到这一点。似乎找不到任何有关如何使用 LoggerRepositorySkeleton 的示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多