log4net将无法基于程序集属性工作

时间:2012-11-23 11:11:51

标签: c# log4net

我让log4net使用外部配置文件,告诉我的应用配置在哪里找到配置文件,然后在应用启动时调用XmlConfigurator.Configure()

  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  ...
  <log4net configSource="Log4Net.config" />

这有效,但我现在想要注意更改,根据文档,我应该能够使用assembly属性来实现这一点,这也意味着我不再需要调用XmlConfigurator.Configure()。所以,我将它添加到主应用程序的AssemblyInfo.cs(以及它引用的项目):

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

麻烦的是,这根本不起作用。如果我删除对XmlConfigurator.Configure()的调用,则日志记录不起作用 - 不启动日志记录。这些属性似乎没有什么区别。所以,我根本无法看到该文件。

有人可以提供建议吗?

1 个答案:

答案 0 :(得分:0)

怀疑它。

这是因为第一个日志消息来自另一个程序集。正如log4net docs所说:

  

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