0

我让 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(),则日志记录不起作用 - 不会启动日志记录。这些属性似乎没有什么区别。所以,我根本看不到文件的工作。

任何人都可以建议吗?

4

1 回答 1

0

怀疑它。

这是因为第一条记录消息来自另一个程序集。正如log4net 文档所说:

必须在应用程序启动期间尽早进行日志调用,当然在加载和调用任何外部程序集之前。

于 2012-11-23T12:06:51.243 回答