我更喜欢log4net的外部配置文件,因为log4net可以监视这些文件,并且可以在不改变应用程序/ web.config文件的情况下更改级别。我在NServiceBus中挣扎了一下。我使用这是我的外部配置文件NServiceBus和Log4Net外部配置文件
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingFile" type="log4net.Appender.FileAppender">
<file value="C:\Logs\NServiceBusApplication.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
这样做最简单的方法是将在AssemblyInfo.cs中的属性
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "ApplicationName.log4net.xml", Watch = true)]
这并不在NServiceBus工作(我用NServiceBus .Host.exe)。然后我打过电话
SetLoggingLibrary.Log4Net(() => XmlConfigurator.Configure(log4netConfigUri));
在EndpointConfig
Configure.With
之前。有了这个log4net从正确的位置读取配置文件,它不会监视它,所以当我更改日志级别时,它不会反映在应用程序中。
接下来,我用的appSettings
<appSettings>
<add key="log4net.Config" value="ApplicationName.log4net.xml"/>
<add key="log4net.Config.Watch" value="True"/>
</appSettings>
试图再次,log4net的读取此,并随后读取ApplicationName.log4net.xml,它仍然不看它。
如何配置使用NServiceBus.Host.exe到
- 在NServiceBus服务log4net的读取配置文件形式的外部配置文件(即log4net的配置是不是的app.config内)
- 观察外部配置文件,以便反映对外部配置文件的任何更改。
确保您将IWantCustomLogging添加到您的端点配置? – 2013-03-23 06:00:17
我相信我在第二个选项中这样做了,但我会再检查一次并让您知道。 – 2013-03-24 05:00:55
[程序集:log4net.Config.XmlConfigurator(ConfigFile =“ApplicationName.log4net.xml”,Watch = true)]对IWantCustomLogging或没有影响。该日志甚至没有定向到所需的文件,因此该设置没有影响。 – 2013-03-25 16:36:16