今天有一些奇怪的事情发生在我身上。我有一个asp.net mvc应用程序与log4net设置,一切都工作正常。某些东西必须在某处发生变化,现在没有记录任何内容(没有创建日志文件)。
这是我的global.asax.cx
protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
}
这是我在web.config中的配置:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\api\ApiLog.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
由于某种原因,永远不会创建c:\logs\api\apilog.txt
文件。但是,如果我将application_start
方法更改为此方法,则可以正常工作:
log4net.Config.XmlConfigurator.Configure(new FileInfo("DirectPathToMy\web.config"));
默认情况下,为什么调用Configure()
无法在我的web.config中找到配置?
答案 0 :(得分:2)
不知道为什么你的方法不起作用,但问题是你需要确保它在你的项目中被激活。
我通常将它作为汇编级引用放在/ Properties:
下的AssemblyInfo.cs中[assembly:log4net.Config.XmlConfigurator()]
参考: http://logging.apache.org/log4net/release/manual/configuration.html