Can I run the NServiceBus3 log in NLog? and if anyone has examples of how to do this?
EDIT: Solution
If someone is interested in my implementation of the application, some of the log4net levels probably do not appear in reasonable areas of NLog, but this should give other people at least a starting point.
public class NlogAppenderForLog4Net : AppenderSkeleton
{
protected override void Append(log4net.Core.LoggingEvent loggingEvent)
{
var Logger = LogManager.GetLogger(loggingEvent.LoggerName);
if (loggingEvent.Level == Level.Fatal)
{
if (loggingEvent.ExceptionObject != null)
{
Logger.FatalException(loggingEvent.RenderedMessage, loggingEvent.ExceptionObject);
}
else
{
Logger.Fatal(loggingEvent.RenderedMessage);
}
}
else if(loggingEvent.Level == Level.Error ||
loggingEvent.Level == Level.Critical ||
loggingEvent.Level == Level.Emergency)
{
if(loggingEvent.ExceptionObject != null)
{
Logger.ErrorException(loggingEvent.RenderedMessage, loggingEvent.ExceptionObject);
}
else{
Logger.Error(loggingEvent.RenderedMessage);
}
}
else if (loggingEvent.Level == Level.Warn)
{
if (loggingEvent.ExceptionObject != null)
{
Logger.WarnException(loggingEvent.RenderedMessage, loggingEvent.ExceptionObject);
}
else
{
Logger.Warn(loggingEvent.RenderedMessage);
}
}
else if (loggingEvent.Level == Level.Info || loggingEvent.Level == Level.Notice)
{
Logger.Info(loggingEvent.RenderedMessage);
}
else
{
Logger.Trace(loggingEvent.RenderedMessage);
}
}
}
and heres how i plug it in NServiceBus
.Log4Net<NlogAppenderForLog4Net>(a => { })
source
share