Log4net配置问题

时间:2012-01-23 16:14:56

标签: c# asp.net .net asp.net-mvc log4net

今天有一些奇怪的事情发生在我身上。我有一个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中找到配置?

1 个答案:

答案 0 :(得分:2)

不知道为什么你的方法不起作用,但问题是你需要确保它在你的项目中被激活。

我通常将它作为汇编级引用放在/ Properties:

下的AssemblyInfo.cs中

[assembly:log4net.Config.XmlConfigurator()]

参考: http://logging.apache.org/log4net/release/manual/configuration.html