Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# log4net,过滤器关闭,不输出_C#_Debugging_Log4net - Fatal编程技术网

C# log4net,过滤器关闭,不输出

C# log4net,过滤器关闭,不输出,c#,debugging,log4net,C#,Debugging,Log4net,我肯定我以前用过这个过滤器,但是。。。我在过滤器名称空间中有一个不输出的_log.debug(“whatever”),它的级别为debug,过滤器为off(即,accept on match=true) 我在这样的类中定义了一个记录器,它是过滤器中使用的命名空间的一部分: private static readonly ILog _logger = LogManager.GetLogger(typeof(IEntityWithTypedId<>)); private sta

我肯定我以前用过这个过滤器,但是。。。我在过滤器名称空间中有一个不输出的_log.debug(“whatever”),它的级别为debug,过滤器为off(即,accept on match=true)

我在这样的类中定义了一个记录器,它是过滤器中使用的命名空间的一部分:

    private static readonly ILog _logger = LogManager.GetLogger(typeof(IEntityWithTypedId<>));
private static readonly ILog\u logger=LogManager.GetLogger(typeof(IEntityWithTypedId));
关于如何找出我没有看到任何东西的原因以及如何修复它,有什么想法吗

  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="Smack.Core.Lib.DomainSuperTypes.EntityImpl" />
        <acceptOnMatch value="true" />
      </filter>
      ...
    </appender>
    <root>
      <appender-ref ref="ConsoleAppender"/>
      <level value="DEBUG"/>
    </root>
  </log4net>

...
更新 我确实在做一些愚蠢的事情;我已经在一个新的项目中,我还没有添加对log4net的引用

不过这是个好消息,因为它仍然不能正常工作。但是,它不是过滤器,因为当从不同的项目运行时,它的工作方式与预期完全相同。添加watch=true程序集属性也没有帮助

这是另外一件愚蠢而明显的事情(比如没有对log4net的引用!),但我还没有看到它

断然的 我没有看到的输出是从依赖项目中的记录器到我添加的新项目。该解决方案有多个项目,它们都通过符号链接共享同一app.config,这就是为什么我希望新项目中的工作方式与其他项目相同。但它当然没有


直到我在新项目中实际添加了一个记录器!现在一切都神奇地工作了,所以我想这就是原因(如果是的话,不能说这真的是一个好的log4net功能)。

您定义了XMLConfigurator watcher吗?这指示log4net读取log4net配置

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

您是否定义了XMLConfigurator监视程序?这指示log4net读取log4net配置

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

卸下过滤器,然后重试。

卸下过滤器,然后重试。

@mrtentju。您的建议确实让我意识到我缺少了对log4net的引用,请参阅我的上次更新。但这个新项目还没有开始。Cheers@mrtentju. 您的建议确实让我意识到我缺少了对log4net的引用,请参阅我的上次更新。但这个新项目还没有开始。干杯您在哪里调用这行代码=>static readonly ILog\u logger=LogManager.GetLogger(typeof(IEntityWithTypedId))?在一个同名的类中,尽管您只是发现了其他东西。它不应该是接口,所以我去掉了前面的“I”。但是仍然没有报酬,你在哪里调用这行代码=>static readonly ILog\u logger=LogManager.GetLogger(typeof(IEntityWithTypedId))?在一个同名的类中,尽管您只是发现了其他东西。它不应该是接口,所以我去掉了前面的“I”。但是仍然没有支付污垢…你在app.config的配置部分有log4net吗(可能只是发布完整配置)你在app.config的配置部分有log4net吗(可能只是发布完整配置)