考虑到您已经有了
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
在您的AssemblyInfo.cs文件中,Log4Net是在应用程序启动时配置还是在第一次使用日志记录器时配置?
LoggerManager
类时。通常是通过调用LogManager.GetLogger来实现的。Log4net只会查找程序集级别配置属性一次。当使用log4net程序集级别属性控制log4net的配置时,必须确保首次调用任何LoggerManager方法是从具有配置属性的程序集中进行的。
来自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,则配置它),或利用DOMConfigurator手动配置log4net。