gpt4 book ai didi

log4net - 从 Log4Net 配置中获取值

转载 作者:行者123 更新时间:2023-12-04 11:30:32 25 4
gpt4 key购买 nike

我通过扩展 AppenderSkeleton 类实现了一个自定义的 log4net appender。它就像任何人都可以要求的一样简单并且完美地工作。

我的问题是我必须硬编码一些值,我想将它们从我的代码中删除到 appender 的配置中。由于 log4net 知道它是如何配置的,我认为应该有一种方法可以向 log4net 询问它的配置。

我的 appender 可能看起来像这样:

<appender name="MyLogAppender" type="xxx.yyy.zzz.MyLogAppender">
<MyProperty1>property</MyProperty1>
<MyProperty2>property</MyProperty2>
<MyProperty3>property</MyProperty3>
</appender>

如何获取 MyProperty1-3 的值以便我可以在我的 Appender 中使用它?

提前致谢
罗兰德

最佳答案

这取决于类型,但对于简单类型,您可以执行以下操作:

像这样定义一个属性:

// the value you assign to the field will be the default value for the property
private TimeSpan flushInterval = new TimeSpan(0, 5, 0);

public TimeSpan FlushInterval
{
get { return this.flushInterval; }
set { this.flushInterval = value; }
}

这你可以配置如下:
<appender name="MyLogAppender" type="xxx.yyy.zzz.MyLogAppender">
<flushInterval value="02:45:10" />
</appender>

这当然适用于 string、bool、int 和 TimeSpan。

注意:如果您的设置需要激活某些逻辑(例如创建计时器),那么您可以在 ActivateOptions 中实现这一点。方法。

关于log4net - 从 Log4Net 配置中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com