Log4Net 从日志中过滤掉 INFO,只显示 DEBUG & ERROR

标签 log4net log4net-configuration log4net-appender log4net-filter

有没有办法从日志中过滤掉 INFO 并只显示 DEBUG & ERROR,使用 web.config 中的配置?

<root>
<level value="DEBUG" />
<appender-ref ref="ColoredConsoleAppender" />
<appender-ref ref="RollingFileSystemAppender" />
<appender-ref ref="ConsoleAppender" />
</root>

最佳答案

在 log4X 中,有一些过滤器可以应用于 appender 以过滤消息;这是一个 list of the filters

  • log4net.Filter.LevelMatchFilter 过滤匹配特定日志级别的日志事件;或者,这可以配置为过滤与特定日志记录级别不匹配的事件。
  • log4net.Filter.LevelRangeFilter 与 LevelMatchFilter 类似,不同之处在于它不是过滤单个日志级别,而是过滤连续级别的包含范围。
  • log4net.Filter.LoggerMatchFilter 根据发出日志事件的记录器对象的名称过滤日志事件。
  • log4net.Filter.StringMatchFilter 根据与日志消息匹配的字符串或正则表达式过滤日志事件。
  • log4net.Filter.PropertyFilter 根据与特定上下文属性匹配的值或正则表达式过滤日志事件。
  • log4net.Filter.DenyAllFilter 有效地删除 appender 的所有日志记录事件。

  • 在您的情况下,您需要过滤三个附加程序以排除 INFO级别:LevelMatchFilter 拒绝 INFO级别日志可以工作:
    <filter type="log4net.Filter.LevelMatchFilter">
      <acceptOnMatch value="false" />
      <levelToMatch  value="INFO" />
    </filter>
    

    关于Log4Net 从日志中过滤掉 INFO,只显示 DEBUG & ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22863014/

    相关文章:

    .net - Log4net 没有在我的 VS2012 单元测试中运行

    c# - WCF 是否在多个线程上运行 session ?

    c# - 如何在 log4net 中以编程方式更改日志文件路径?

    c# - Log4net 缓冲区大小不起作用

    c# - log4net AdoNetAppender 在数据库中插入 "Null"字符串而不是空值

    caSTLe-windsor - 我必须用 CaSTLe Windsor 解决 ILogger 问题吗?

    logging - Log4Net:旋转日志文件名

    c# - MSTest - 如何为 UnitTest 项目初始化 log4net?

    log4net 不会从 app.config 读取