Общий хост NServiceBus и Common.Logging

Близкие,

У меня правильно работает ведение журнала NServiceBus, следуя указаниям, найденным здесь: http://docs.particular.net/nservicebus/logging/

Однако я использую Common.Logging. Если я использую LogManager для Common.Logging, он не регистрируется.

Если я использую LogManager для log4net, все работает нормально.

У кого-нибудь есть понимание здесь?


person CubanX    schedule 10.05.2011    source источник


Ответы (3)


Я понял это. Мне нужно было программно настроить 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

Common.Logging служит абстракцией от log4net для внутренних целей NServiceBus.

person Udi Dahan    schedule 11.05.2011
comment
Правильно, я заметил в вашем блоге, что вы, ребята, используете Common.Logging для внутреннего использования. Я также использую его в своем проекте. Есть ли способ, которым я могу выровнять два, чтобы я мог использовать Common.Logging внутри обработчиков и видеть фактические сообщения журнала в моем файле журнала при использовании Common.Logging? - person CubanX; 11.05.2011
comment
Вам придется использовать двоичные файлы только для ядра и ссылаться на ту же DLL, что и в NServiceBus. - person Udi Dahan; 13.05.2011

Начиная с NServiceBus 5 CommonLogging поддерживается OOTB http://docs.particular.net/nservicebus/logging/common-logging

person Simon    schedule 29.01.2016