13

这是我的 web.config 信息:

  <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <log4net>
        <root>
                <level value="ALL" />
        </root>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
              <file value="c:\temp\log-file.txt" />
              <appendToFile value="true" />
              <rollingStyle value="Size" />
              <maxSizeRollBackups value="10" />
              <maximumFileSize value="1MB" />
              <staticLogFileName value="true" />
              <layout type="log4net.Layout.SimpleLayout" />
        </appender>
      </log4net>
...

这是初始化记录器的代码:

protected void SendMessage()
    {
        log4net.Config.XmlConfigurator.Configure(); 
        ILog log = LogManager.GetLogger(typeof(Contact));
        ...
        log.Info("here we go!");
        log.Debug("debug afasf");
        ...
     }

不管我做什么,它都不起作用。我正确引用了“log4net.dll”,通过调试应用程序,我可以看到日志对象正在正确启动。这是一个 asp.net 3.5 框架 web 项目。有什么想法/建议吗?

我最初认为这个错误可能是由于文件写入权限限制,但似乎并非如此(或者我认为)。

4

4 回答 4

13

我找到了答案:我需要 web.config 的配置部分中的 requirePermission="false" 标记。

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" **requirePermission="false"**/>
</configSections>
于 2010-05-20T21:26:24.977 回答
6

据我所见,您缺少根的附加程序:

<root>
  <level value="ALL" />
  <appender-ref ref="RollingFileAppender" />
</root>
于 2010-05-17T15:35:27.167 回答
1

我不得不调用 fileAppender.ActivateOptions() 让它记录

于 2013-08-05T00:08:21.780 回答
0

是否可以在网络服务器上运行调试视图

如果是这样,您也许可以查看 log4net 是否报告任何错误(例如访问错误或读取配置文件错误)

于 2010-05-19T12:22:10.927 回答