如何实现示例log4net存储库

问题描述:

如何为我的XML文件实现自定义LOG4NET解析器。我的XML文件包含:
(1)appender元素上的额外属性
(2)自定义替换某些需要在运行时设置的appender的元素。如何实现示例log4net存储库

例如:

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

我已阅读,我应该实现可能使用LoggerRepositorySkeleton自定义库,但不知道如何把这个整个事情。有什么建议么?

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

+0

谢谢,但我不是真的在寻找一个appender。如果我沿着这条路线前进,我几乎必须改变log4net所拥有的每一个appender。理想情况下,我想在appender创建之前拦截并通过查找数据库中的值来更改所有参数。然后我想通过我所需要的log4net,以便它可以继续初始化 – user233866 2009-12-17 20:46:34

+0

只是为了澄清上述情况。我想我需要以某种方式替换log4net.config中标记为$ {some-key-to-lookup}的所有属性和元素值,这是在log4net初始化appender之前由log4net加载的。然后log4net应该使用我解析的值替换初始化appender并移动到下一个appender并重复。 – user233866 2009-12-17 20:53:54

+0

啊我明白了。我已经相应地修改了我的答案 – 2009-12-17 22:48:14