0

伙计们,

我按照此处找到的说明使 NServiceBus 日志记录正常工作:http: //docs.particular.net/nservicebus/logging/

但是,我使用的是 Common.Logging。如果我将 LogManager 用于 Common.Logging,它不会记录。

如果我将 LogManager 用于 log4net,一切正常。

有人对这里有任何见解吗?

4

3 回答 3

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 的建议将附加程序配置保留在代码中(我认为这是个好主意)

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

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

于 2011-05-11T20:15:28.763 回答
0

Common.Logging 作为 log4net 的抽象,用于 NServiceBus 的内部用途。

于 2011-05-11T04:50:34.647 回答
0

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

于 2016-01-29T05:36:33.603 回答