我让 log4net 使用外部配置文件,方法是告诉我的应用程序配置在哪里可以找到配置文件,然后XmlConfigurator.Configure()
在应用程序启动时调用。
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
...
<log4net configSource="Log4Net.config" />
这行得通,但我现在想观察变化,根据文档我应该可以使用程序集属性来实现这一点,这也意味着我不需要再调用XmlConfigurator.Configure()
了。因此,我将其添加到主应用程序的 AssemblyInfo.cs(以及它引用的项目):
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
麻烦的是,这根本没有任何作用。如果我删除对 的调用XmlConfigurator.Configure()
,则日志记录不起作用 - 不会启动日志记录。这些属性似乎没有什么区别。所以,我根本看不到文件的工作。
任何人都可以建议吗?