无法在ASP中使用log4net将日志写入文件.. NET Web表单网站

本文关键字:文件 NET Web 网站 表单 日志 ASP log4net | 更新日期: 2023-09-27 18:08:19

我在使用log4net dll记录文本文件时遇到问题。

我在windows server 2008 r2标准(64)上使用vs 2012 express。我执行了以下步骤:

  1. 打开一个新的asp.net web forms
  2. 通过nuget管理器安装log4net
  3. 在全局。asax文件我在Application_Start:

    log4net.Config.XmlConfigurator.Configure ();
    
  4. 在web配置中,我在configSections节点中添加了这一行:

    & lt;section name="log4net" type="log4net. config "。Log4NetConfigurationSectionHandler, log4net "/>

  5. 在web配置中我添加了这个部分:

    <log4net debug="true">
     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
     <file value="c:'webSite'extraDownloadServerResources'Logs'ALU'log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Composite"/>
    <datePattern value="yyyyMMdd" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="5MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%n%-5p %d %5rms %-22.22c{1} %-18.18M %n - %m%n" />
    </layout>
    </appender>
    <root>
     <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
    </log4net>
    
  6. 在启动页中,我有记录器的获取实例:

    private static readonly ILog log = LogManager.GetLogger ( System.Reflection.MethodBase.GetCurrentMethod ().DeclaringType );
    
  7. Page_Load中,我写了这一行:

    日志。调试("test");

  8. 我已经在log.txt文件安全中添加了具有读写权限的默认应用程序池用户

我的日志文件中没有任何内容。为了测试我所做的步骤,我创建了一个新的空网站,并按照这些步骤逐一执行。唉(我喜欢这个词),这次日志已经写入文件了。

谁能给我指出一个可能的解决办法?

无法在ASP中使用log4net将日志写入文件.. NET Web表单网站

要调试log4net配置的问题,您应该启用log4net内部调试。

appSettings中添加log4net.Internal.Debug键,如下所示:

<appSettings>
    <add key="log4net.Internal.Debug" value="true"/>
</appSettings>

这将使log4net能够将所有消息输出到控制台和Trace。要将所有诊断消息转发到文件,可以添加跟踪侦听器:

<system.diagnostics>
    <trace autoflush="true">
        <listeners>
            <add      name="textWriterTraceListener" 
                type="System.Diagnostics.TextWriterTraceListener" 
                initializeData="C:'tmp'log4net.txt" />
        </listeners>
    </trace>
</system.diagnostics>

这些片段直接取自log4net FAQ,这里仅供快速参考。

这至少可以让您了解发生了什么,因为您将得到错误消息。

我已经设法解决了我的问题。

我已经下载了一个工具来监控所有的iss流量。当监控流量时,我看到用户名不是defaultAppPool也不是AppPoolName。它是ASP。净v4.0 。在我授予权限并重新启动一切后,我终于在文件中看到了一些日志…