NServiceBus通用主机和Common.Logging

时间:2011-05-10 19:05:28

标签: nservicebus common.logging

民间,

我按照此处的说明正确运行了NServiceBus日志记录: http://docs.particular.net/nservicebus/logging/

但是,我正在使用Common.Logging。如果我使用LogManager for Common.Logging,它不会记录。

如果我使用LogManager for log4net,一切正常。

这里有任何见解吗?

3 个答案:

答案 0 :(得分: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;
                                              })

这允许我在配置文件中加载日志记录级别,但是按照Udi的建议将appender配置保留在代码中(我认为这是一个好主意)

我知道我可以使用nServiceBus的内置日志记录级别,但我无法弄清楚如何对其进行细粒度控制以便我可以忽略nHibernate日志记录,但是获取所有nServiceBus日志记录。

如果有人需要更多关于我做了什么的指导,请在此处发表评论,或者如果您知道如何使用nServiceBus日志记录级别获得细粒度控制,请告诉我。

答案 1 :(得分:0)

为了NServiceBus的内部目的,Common.Logging用作log4net的抽象。

答案 2 :(得分:0)

从NServiceBus开始,5支持CommonLogging OOTB http://docs.particular.net/nservicebus/logging/common-logging