为什么log4net会在.NET WCF上暂停一段时间而不是通常的网站?

时间:2015-06-02 20:59:02

标签: wcf logging iis-7 iis-7.5 log4net

我搜索了很多网站并尝试了几种不同的意见。但我仍然无法解决它。以下是我现在所做的事情:

  • Application_Startup的Global.asax中,我提供文件路径并启动Log4Net。
  • 在我启动log4net之后,我写了一个日志,上面写着“应用程序有 盯着'“
  • 目前,IIS中只有一个工作程序用于WCF应用程序 IIS用户可以访问WRITEMODIFYREAD权限

问题:

  1. 当我直接调用服务方法时(不做2)。 下面的步骤),没有写日志
  2. 在浏览器上,我写了一个WCF url并点击ENTER,Log4Net创建了 文件夹和文件(此时文件为EMPTY)。
  3. 如果我发出请求并调用方法(执行第1步),现在 Log4Net写日志。
  4. 实际问题:

    • 在第3步之后,(假设我们等了没有任何调用 WCF方法大约10分钟或更长时间),调用不创建 Log4Net Text记录ANYMORE
    • 有时,如果我重复第二步,它就会开始写日志 再次。但是没有连贯的结果。

    这是Config.xml:

     <?xml version="1.0" encoding="utf-8"?>
    
        <log4net>
           <appender name="ProcessInfo_FileAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value="L:\LOGs\ProcessInfo\ProcessInfo_[%processid].txt" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <maxSizeRollBackups value="200" />
        <maximumFileSize value="30MB" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] - %message%newline" />
        </layout>
      </appender>
    
         <logger name="ProcessInfo">
            <levelMin value="ERROR" />
            <levelMax value="INFO" />
            <appender-ref ref="ProcessInfo_FileAppender" />
          </logger>  
        <root></root>
        </log4net>
    

    我有其他WCF项目,即使有多个Worker也没有问题。 (我使用完全相同的IIS和Log4Net xml配置)。另外,正如我在标题中提到的,我有一个WebSite,它具有完全相同的日志代码(它们都使用我编写的常见第三方dll),并且完全没有编写Log4Net文本日志记录的问题。

    请帮忙。

    感谢。

1 个答案:

答案 0 :(得分:1)

问题不在您的日志记录配置中,您应该尝试启用log4net内部调试。这将告诉您为什么日志记录停止。我想有些代码会重新配置您的日志记录,以便从您的web.config加载配置,而不是那里。

solution

Log4net FAQ