我的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>
在课堂上,我用
实例化记录器private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
并调用Log.Error(message);只有一次,但在我的日志中,所有错误都是重复的。此外,在WebApi项目的控制器类中调用此方法。
我在其他问题中读过,当使用多个记录器并将消息传播到根记录器时会发生这种情况,但是,我在这个实例中只使用了根记录器。
答案 0 :(得分:5)
问题似乎是AWS SDK特定配置:
<add key="AWSLogging" value="log4net" />
不知何故,这复制了appender并导致双重消息。
要修复,只需删除此设置或将值更改为“无”。