使用log4net丢弃范围内的多个日志级别

Har*_*she 5 log4net

说我把我的log4net记录仪minLevel,并maxLevelFATALDEBUG分别,但在某些情况下我想静音写入日志项WARN的水平,并保持在活跃的范围内的所有其他级别.

有可能以某种方式使用"离散"级别的日志级别而不是使用minLevel和指定范围maxLevel吗?

我认为这应该很简单,但我没有找到任何处理此问题的log4net文档或示例.

Ste*_*gli 7

你可以使用LevelMatchFilter你的appender.

例:

<appender name="FilteredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="DEBUG" />
    </filter>
    <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="INFO" />
    </filter>
    <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="ERROR" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    ...
</appender>
Run Code Online (Sandbox Code Playgroud)

这个例子只会打印DEBUG; INFO和ERROR消息.可以根据您的需求轻松定制.

注意:不要忘记DenyAllFilter最后.