Logging Log4Net多个appender,多个表的配置有问题

Logging Log4Net多个appender,多个表的配置有问题,logging,log4net,common.logging,Logging,Log4net,Common.logging,我有两个不同的表,我也在记录信息。我正在使用log4net的Common.Logging库包装器,并且几乎已经正确配置了一些东西,但是我遇到了一个问题,很多东西都被记录到了日志表中。。。我知道,违反直觉。。。我有两张桌子 日志表 审计表 下面是我的配置 <log4net> <!-- This will force both loggers to write to both tables--> <root> <level value="INFO" /&

我有两个不同的表,我也在记录信息。我正在使用log4net的Common.Logging库包装器,并且几乎已经正确配置了一些东西,但是我遇到了一个问题,很多东西都被记录到了日志表中。。。我知道,违反直觉。。。我有两张桌子

日志表 审计表

下面是我的配置

<log4net>
<!-- This will force both loggers to write to both tables-->
<root>
  <level value="INFO" />
  <appender-ref ref="LogAppender" />
  <!--<appender-ref name="Audit" ref="AuditAppender" />-->
</root>
<logger name="Log">
  <level value="INFO" />
  <appender-ref ref="LogAppender" />
</logger>
<logger name="Audit">
  <level value="INFO" />
  <appender-ref ref="AuditAppender" />
</logger>
<!--SQL LOG TABLE Appender-->
<appender name="LogAppender" type="log4net.Appender.AdoNetAppender"> ....  This writes to Log Table correctly
</appender>
<appender name="AuditAppender" type="log4net.Appender.AdoNetAppender"> ....  This logs to the Audit Table correctly
</appender>
</log4net>
现在如果我把三个人连在一起

    _default.Info("Default Logger");
    _logger.Info("Test get products logging");
    _auditer.Info("Test get products audit");
我正试图得到它,以便_default或_logger都写入日志表,实际上它们是这样做的 然后_auditer记录器写入审计表


但问题是。。。按照我的配置方式,审计表也会写入日志表,这是我不想要的。现在,如果我在log4net配置中去掉根节点,那么我只有命名的记录器,一切都正常,因为_logger日志写入日志表,_auditer写入审计表,但是_默认日志不写入任何内容。。。那么我在这里遗漏了什么呢?

您应该设置additivity=false,以防止审计记录器继承根记录器的配置

<logger name="Audit" additivity="false">
   ...
</logger>

...

Bingo就是这样!我知道这很简单。。。谢谢
<logger name="Audit" additivity="false">
   ...
</logger>