Log4Net:如何在运行时配置阈值?

Log4Net:如何在运行时配置阈值?,log4net,Log4net,我需要在运行时动态配置阈值,我可能在.net变量中有级别的整数或字符串表示。log4net希望在构造函数中指定这两种表示形式,而不是获得其中一种表示形式,这在我看来非常奇怪: public Level(int level, string levelName); log4net团队甚至没有费心解释原因,我发现的只是: 他们甚至没有解释这int-level意味着什么,我在哪里可以找到它的映射?他们只是说“更高的值代表更严重的水平”,这是不够的 我希望有这样的东西: appender.Thresh

我需要在运行时动态配置阈值,我可能在.net变量中有级别的整数或字符串表示。log4net希望在构造函数中指定这两种表示形式,而不是获得其中一种表示形式,这在我看来非常奇怪:

public Level(int level, string levelName);
log4net团队甚至没有费心解释原因,我发现的只是:

他们甚至没有解释这
int-level
意味着什么,我在哪里可以找到它的映射?他们只是说“更高的值代表更严重的水平”,这是不够的

我希望有这样的东西:

appender.Threshold = new Level(level);

这里的
级别
可能是字符串或int类型

级别
类具有预定义级别的公共静态成员,例如Off、Error、Warning:

您可能希望将
阈值
属性设置为这些预定义级别之一,例如:

myAppender.Threshold = Level.Warn;
或者,您可以将级别设置为存储库的LevelMap中的一个条目

更新


你的意思是我必须根据他们的命令来解决吗?像关闭映射到0(或1?)


一点也不:Off映射到
Level.Off.Value
;其他的也一样。

我需要在运行时设置level,因此该值只能在运行时知道,并且可以存储在某种类型的变量中。与示例中的变量
level
类似
appender.Threshold=newlevel(level)
LevelMap
具有相同类型的构造函数,它不解释哪个int值映射到哪个特定的level@YMC,如果您查看预定义的级别(Level.Warn、Level.Error等),您将看到哪些值对应于哪些级别。您的意思是我必须按照它们的顺序进行计算吗?如关闭映射到0(或1?),紧急映射到1(或2?),等等?级别的数值也在中列出,请记住,在运行时更改appender时,必须调用
appender.ActivateOptions()
,更改才能生效。