logging - 如何将AND和Log4net过滤器组合在一起

标签 logging log4net log4net-configuration log4net-filter

我想创建一个仅记录特定级别和特定记录器的附加程序。根据我所看到的,基于this tutorial,过滤器进行了“或”运算。我如何将log4net与AND4一起过滤?这是我正在做的事的一个例子:

<appender name="MyAppender">
      <!--log only INFO level-->
      <filter type="log4net.Filter.LevelMatchFilter">
          <levelToMatch value="INFO" />
      </filter>

      <!--log only UserController logger-->
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="MyLogger" />
      </filter>

      <!-- do not log anything else -->
      <filter type="log4net.Filter.DenyAllFilter" />
</appender>

最佳答案

您可以编写一个自定义的AndFilter,这很容易。您可以使用此处发布的代码-https://stackoverflow.com/a/8859037/984438

用法如下:

<filter type="Namespace.AndFilter, Assembly">
      <!--log only INFO level-->
      <filter type="log4net.Filter.LevelMatchFilter">
          <levelToMatch value="INFO" />
      </filter>

      <!--log only UserController logger-->
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="MyLogger" />
      </filter>
      <acceptOnMatch value="true"/>
</filter>
<!-- do not log anything else -->
<filter type="log4net.Filter.DenyAllFilter" />

关于logging - 如何将AND和Log4net过滤器组合在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650399/

相关文章:

c# - 调用 Shutdown() 后重新启动 log4net 内存附加器

c# - Log4net 缓冲区不起作用

python - hadoop 流 : where are application logs?

c# - Log4net 在同一数据库上有两个不同的实例

c# - 如何为我们在服务器上开发和运行的应用程序配置 log4net?

c# - 如何使用 System.Configuration.Configuration 配置 log4net

c# - 如何配置 log4net 以在 Debug模式下打印到控制台

javascript - 我可以在 javascript 中扩展控制台对象(用于重新路由日志记录)吗?

mongodb - MongoDB Web 界面上的 ELMAH 抛出异常

logging - 当 Airflow 尝试写入日志时 Errno 13 权限被拒绝