1

我尝试在我的项目中包含 log4net 并且遇到了非常奇怪的问题。

我的样子如下:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
    <section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </configSections>

后来在 webconfig 中有:

  <log4net>
   (...)     
  </log4net>

Log4net 不工作 - 没有创建错误文件。

现在,当我故意更改“microsoft.identityModel”的配置部分(做了一些错字)并尝试访问我的网站时 - 出现错误。但是当我故意更改“log4net”的配置部分时 - 网站运行良好 - 看起来像

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />

被跳过或无关紧要。任何想法我做错了什么?

4

2 回答 2

3

确保您已在以下位置初始化记录器Application_Start

protected void Application_Start()
{
    log4net.Config.XmlConfigurator.Configure();
    ...
}

或使用文档中所示的程序集级别属性:

[assembly: log4net.Config.XmlConfigurator()]
于 2012-06-15T08:57:03.230 回答
0

把它放在你的 Global.asax 文件中:

void Application_Start(object sender, EventArgs e) 
{
   log4net.Config.XmlConfigurator.Configure();
}

你需要告诉 log4net 它应该如何在某个地方配置自己。Global.asax 是一个很好的地方。

于 2012-06-15T09:03:26.160 回答