使用log4net日志框架的非常规日志级别

10

我意识到除了all、debug、info、warn、error和fatal之外,还有更多级别,它们列在log4net.Core.Level类中。

但是我该如何使用它们呢?我的意思是,在ILog接口中,您有方法可以使用通常的那些级别,但如果您想使用"Fine"或"Emergency"等级别,该怎么办?

谢谢。

2个回答

22
在下面的例子中,Log 的类型是 ILog
Log.Logger.Log(null, log4net.Core.Level.Emergency, "Help!", null);

为了知道何时禁用每个级别,需要检查它们的Value

对于log4net版本1.2.10.0,您有以下级别和相关的截止值:

OFF: 2147483647
EMERGENCY: 120000
FATAL: 110000
ALERT: 100000
CRITICAL: 90000
SEVERE: 80000
ERROR: 70000
WARN: 60000
NOTICE: 50000
INFO: 40000
DEBUG: 30000
FINE: 30000
TRACE: 20000
FINER: 20000
VERBOSE: 10000
FINEST: 10000
ALL: -2147483648
请注意,有些级别共享相同的值,因此禁用其中一个级别也会禁用另一个级别,例如TRACE和FINER。

我可能是瞎了,没看到那个属性哈哈。那么,我能在配置文件中使用这些级别吗?并且它们需要大写吗?干杯。 - vtortola
2
@vtortola,是的,您可以在配置中使用这些级别。 - João Angelo
@vtortola,你没有瞎。像IsXxxEnabled、Xxx、XxxFormat这样的基本级别的所有好用功能在其他级别中都不可用,因此在使用ILog接口时很容易忽略它们。这也意味着在代码中使用其他级别需要更多的工作。 - Dror Harari

4

在已经提供的好答案上进行扩展:

您还可以添加以下扩展方法:

 static public void Notice( this ILog log, object message )
 { 
     log.Logger.Log( null, log4net.Core.Level.Notice, message, null);
 }

那么使用方法如下:
Log.Notice("Take note!");

其中Log是ILog类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接