Я понял это. Мне нужно было программно настроить 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, дайте мне знать и об этом.
person
CubanX
schedule
11.05.2011