I have an azure worker role which I have configured to use a log4net Trace Appender which writes to WindowsAzure.Diagnostics. This is done by making the following calls in the R
A couple of blog posts deal with this issue: (here and here)
The answer in my case was to use Pete McEvoy's solution and extend the TraceAppender in the following manner:
using System.Diagnostics;
using log4net.Appender;
using log4net.Core;
namespace XXX.Logging
{
public class AzureTraceAppender : TraceAppender
{
protected override void Append(LoggingEvent loggingEvent)
{
var level = loggingEvent.Level;
var message = RenderLoggingEvent(loggingEvent);
if (level >= Level.Error)
Trace.TraceError(message);
else if (level >= Level.Warn)
Trace.TraceWarning(message);
else if (level >= Level.Info)
Trace.TraceInformation(message);
else
Trace.WriteLine(message);
if (ImmediateFlush)
Trace.Flush();
}
}
}
This extension was then implemented in my App.config: