【问题标题】:Log4net Configuration IssueLog4net 配置问题
【发布时间】:2013-10-24 15:11:06
【问题描述】:

我今天开始发生一些奇怪的事情。我有一个带有 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 中默认找不到配置吗?

【问题讨论】:

  • 您确定&lt;log4net&gt; 部分是在您的根~/web.config 文件中定义的,而不是~/Views/web.config 中的部分吗?

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


【解决方案1】:

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

我通常将它作为程序集级别的引用放在我的 AssemblyInfo.cs 中的 /Properties 下:

[程序集:log4net.Config.XmlConfigurator()]

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

【讨论】:

  • 我不确定您所说的“激活”是什么意思。我从我的 Application_Startup 方法中调用。这还不够吗?之前似乎一切都奏效了。
  • 这行得通...但是为什么不能从 application_start 调用它呢?
猜你喜欢
  • 2011-04-09
  • 2011-02-17
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多