我更喜歡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