鉴于你有
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
在AssemblyInfo.cs文件中,何时配置Log4Net?它是在应用程序启动时还是第一次使用记录器时?
答案 0 :(得分:7)
当您调用LoggerManager
类时,将使用配置文件。这通常是通过调用LogManager.GetLogger。
有关详情,请参阅http://logging.apache.org/log4net/release/sdk/log4net.Config.XmlConfiguratorAttribute.html;特别注意:
Log4net只会查找程序集 级别配置属性一次。 使用log4net程序集级别时 属性来控制 你必须配置log4net 确保第一次调用任何一个 LoggerManager方法由 具有配置的程序集 属性。
答案 1 :(得分:3)
来自Apache log4net站点的引用:
因此,如果使用配置属性,则必须调用log4net以允许它读取属性。对LogManager.GetLogger的简单调用将导致读取和处理调用程序集上的属性。因此,必须在应用程序启动期间尽早进行日志记录调用,当然在加载和调用任何外部程序集之前。 http://logging.apache.org/log4net/release/manual/configuration.html
这是一篇很好的文章,介绍如何确保配置设置并正常运行: http://www.fooji.net/blog/post/2010/04/27/logging-log4net-e28093-part-iii.aspx
基本上,您需要进行日志记录调用(如果尚未配置log4net,则调用log4net)或使用DOMConfigurator手动配置log4net。