Reputation: 325
My log4net configuration looks like this:
<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>
In classes, I instantiate the logger with
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
and call the Log.Error(message); only once but in my logs, all the errors are duplicated. Also, this method is being called in a controller class for a WebApi project.
I've read in other questions that it can happen when using multiple loggers and them propagating messages upto the root logger, however, I am only using the root logger in this instance.
Upvotes: 5
Views: 1771
Reputation: 325
It seems that the problem was an AWS SDK specific configuration:
<add key="AWSLogging" value="log4net" />
Somehow, this duplicated the appenders and caused the double messages.
To fix, just remove this setting or change the value to "none".
Upvotes: 5