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