伙计们,
我按照此处找到的说明使 NServiceBus 日志记录正常工作:http: //docs.particular.net/nservicebus/logging/
但是,我使用的是 Common.Logging。如果我将 LogManager 用于 Common.Logging,它不会记录。
如果我将 LogManager 用于 log4net,一切正常。
有人对这里有任何见解吗?
伙计们,
我按照此处找到的说明使 NServiceBus 日志记录正常工作:http: //docs.particular.net/nservicebus/logging/
但是,我使用的是 Common.Logging。如果我将 LogManager 用于 Common.Logging,它不会记录。
如果我将 LogManager 用于 log4net,一切正常。
有人对这里有任何见解吗?
我想通了。我需要以编程方式设置 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 日志记录级别进行细粒度控制,也请告诉我。
Common.Logging 作为 log4net 的抽象,用于 NServiceBus 的内部用途。
从 NServiceBus 5 开始,支持 CommonLogging OOTB http://docs.particular.net/nservicebus/logging/common-logging