我的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>

在类里面,我实例化了logger
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

并调用Log.Error(message);仅一次,但在我的日志中,所有错误均重复。另外,在WebApi项目的 Controller 类中正在调用此方法。

我已经读过其他问题,在使用多个记录器并将它们传播消息到根记录器时可能会发生,但是,在这种情况下,我仅使用根记录器。

最佳答案

看来问题出在AWS开发工具包特定的配置上:

     <add key="AWSLogging" value="log4net" />

不知何故,这复制了附加程序并导致出现双重消息。

要解决此问题,只需删除此设置或将值更改为“无”即可。

关于c# - 仅使用一个(根)记录器时的Log4net重复条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41045071/

10-13 08:20