当仅使用一个(根)记录器时,Log4net重复条目

Ada*_*ate 5 c# log4net log4net-configuration amazon-cloudwatchlogs

我的log4net配置如下所示:

<log4net>
 <appender name="CloudWatchLogsAppender" type="CloudWatchAppender.CloudWatchLogsAppender, CloudWatchAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger.%method - %message%newline" />
  </layout>
  <groupName value="agroupname" />
  <streamName value="astreamname" />
 </appender>
 <root>
  <level value="INFO" />
  <appender-ref ref="CloudWatchLogsAppender" />
 </root>
 <logger name="Amazon">
  <level value="OFF" />
 </logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)

在类中,我用log实例化记录器

private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)

并调用Log.Error(消息); 只有一次,但在我的日志中,所有错误都是重复的.此外,在WebApi项目的控制器类中调用此方法.

我已经读过其他问题,当使用多个记录器并将消息传播到根记录器时会发生这种情况,但是,我在这个实例中只使用了根记录器.

Ada*_*ate 5

似乎问题是AWS SDK特定配置:

     <add key="AWSLogging" value="log4net" />
Run Code Online (Sandbox Code Playgroud)

不知何故,这复制了appender并导致了双重消息.

要修复,只需删除此设置或将值更改为"无".