今天有件奇怪的事发生在我身上。我有一个安装了log4net的asp.net mvc应用程序,一切都运行得很好。一定是某个地方发生了变化,现在没有记录任何内容(没有创建日志文件)。
这是我的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中找到配置吗?
发布于 2012-01-24 00:34:24
我不知道为什么你的方法不起作用,但问题是你需要确保它在你的项目中被激活。
我通常将其作为程序集级引用放在/Properties下的AssemblyInfo.cs中:
程序集: log4net.Config.XmlConfigurator()
参考:http://logging.apache.org/log4net/release/manual/configuration.html
https://stackoverflow.com/questions/8974810
复制相似问题