Я понял это. Мне нужно было программно настроить Common.Logging вместо декларативного (в файле конфигурации).
По сути, я добавил эту строку до того, как настроил свободную шину:
LogManager.Adapter = new Log4NetLoggerFactoryAdapter(new NameValueCollection { { "configType", "INLINE" } });
SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);
И мой раздел регистрации на автобусах выглядит так:
.Log4Net<ColoredConsoleAppender>(cca =>
{
cca.Layout = patternLayout;
})
.Log4Net<RollingFileAppender>(fa =>
{
fa.File = "log/handler.log";
fa.AppendToFile = true;
fa.RollingStyle = RollingFileAppender.RollingMode.Size;
fa.MaxSizeRollBackups = 5;
fa.MaximumFileSize = "1000KB";
fa.StaticLogFileName = true;
fa.Layout = patternLayout;
})
Это позволяет мне загружать уровни регистрации в конфигурационном файле, но оставить конфигурацию приложения в коде, как это было предложено Уди (и я думаю, что это отличная идея)
Я знаю, что мог бы использовать встроенный уровень ведения журнала nServiceBus, но я не мог понять, как получить детальный контроль над этим, чтобы можно было игнорировать ведение журнала nHibernate, но получить все ведение журнала nServiceBus.
Если кому-то понадобится больше советов относительно того, что я сделал, просто прокомментируйте здесь, или если вы знаете, как получить детальный контроль, используя уровень ведения журнала nServiceBus, дайте мне знать об этом тоже.