民间,
我按照此处的说明正确运行了NServiceBus日志记录: http://docs.particular.net/nservicebus/logging/
但是,我正在使用Common.Logging。如果我使用LogManager for Common.Logging,它不会记录。
如果我使用LogManager for log4net,一切正常。
这里有任何见解吗?
答案 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