代码之家  ›  专栏  ›  技术社区  ›  contactmatt

非常简单的文件附加器日志记录不工作

  •  13
  • contactmatt  · 技术社区  · 16 年前

    以下是我的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 回复  |  直到 12 年前
        1
  •  12
  •   contactmatt    16 年前

    我找到了答案:我需要web.config的配置seciton中的requirePermission=“false”标记。

    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" **requirePermission="false"**/>
    </configSections>
    
        2
  •  6
  •   tanascius    16 年前

    据我所知,您缺少根的附加器:

    <root>
      <level value="ALL" />
      <appender-ref ref="RollingFileAppender" />
    </root>
    
        3
  •  0
  •   sgmoore    16 年前

    能跑吗 Debug View 在网络服务器上?

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

        4
  •  0
  •   Andrew    12 年前

    我必须调用fileAppender.activateOptions()来获取日志记录