Here are some of the things I've tried, using my own host:
var bus = NServiceBus.Configure.With()
.Log4Net(log4net.Config.XmlConfigurator.Configure)
.CastleWindsorBuilder(ConfigureWindsor())
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.LoadMessageHandlers()
.CreateBus()
.Start();
This doesn't compile because of the XmlConfigurator parse to Log4Net. Then I tried:
.Log4Net<ColoredConsoleAppender>(ca => { ca.Threshold = Level.Debug; ca.AddMapping(new ColoredConsoleAppender.LevelColors(){BackColor = ColoredConsoleAppender.Colors.Blue, ForeColor = ColoredConsoleAppender.Colors.Red, Level = Level.Debug});})
This works and it's colored for this precise level. However, I'd like to be able to have the logging controlled by a config file or profiles.
Then I tried appending this line after setting up my bus:
NServiceBus.SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);
This fails in the console with an error from Log4Net saying:
log4net:WARN XmlHierarchyConfigurator: Unable to set property [mapping] on objec
t [log4net.Appender.ColoredConsoleAppender] using value [
] (with acceptable conversion types)
My log4net app.config settings:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="console" type="log4net.Appender.ColoredConsoleAppender">
<target value="Console.Error" />
<mapping>
<level value="FATAL" />
<foreColor value="Red" />
<backColor value="White" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n"/>
</layout>
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="console"/>
</root>
</log4net>
I've tried similar things for the Generic Host with same result. I've tried debugging and calling "LogManager.GetAllRepositories()[0].GetAppenders()" in the immediate window, making sure that my appender is in fact at ColoredConsoleAppender.
Any suggestions will be appreciated.
Thanks!
Kristian