似乎跳过了webconfig中的Log4net部分

时间:2012-06-15 08:52:19

标签: asp.net asp.net-mvc-3 log4net

我尝试在我的项目中包含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" />

被跳过或无关紧要。 我有什么想法吗?

2 个答案:

答案 0 :(得分:3)

确保您已在Application_Start中初始化了记录器:

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

或使用documentation

中所示的程序集级别属性
[assembly: log4net.Config.XmlConfigurator()]

答案 1 :(得分:0)

将它放在Global.asax文件中:

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

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