日志文件在生产服务器上停止写入

Log files stopped writing on production server

编辑 - 我想我已经发现了根本原因 - 系统管理员在服务器上安装了 NewRelic,它以某种方式覆盖了我的日志记录。有什么办法可以关闭它吗?

我有几个应用程序直到几周前都还可以正常记录 - 系统管理员发誓他这边没有任何变化,同样我认为我的也没有任何变化。

应用程序在 Windows Servier 2012 R2,IIS 8.5。

我用的是log4net,配置文件是这样的:

 <log4net>
  <root>
    <level value="ALL" />
    <appender-ref ref="file" />
  </root>
  <appender name="file" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="logs/application_log.xml"/>
    <appendToFile value="true" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true"/>
    </layout>
    <param name="Encoding" value="utf-8" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
  </appender>
</log4net>

AssemblyInfo 将此附加到末尾

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]

这就足够了,日志将开始捕获 - 构建 + 日志在我的本地机器上运行良好。

我已经尝试解决这个问题太久了,所以想知道是否还有什么我可以尝试的?

当然有!打开 log4net 的调试日志功能。

您的配置应如下所示。

<configuration>

...

<log4net>
  <root>
    <level value="ALL" />
    <appender-ref ref="file" />
  </root>
  <appender name="file" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="logs/application_log.xml"/>
    <appendToFile value="true" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true"/>
    </layout>
    <param name="Encoding" value="utf-8" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
  </appender>
</log4net>

...

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

...   

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

...

</configuration>