2

我今天发现我们的生产系统在他们的日志文件中丢失了很多东西。我们当前的日志文件包含所有内容(从午夜到午夜),但是当我查看前一天的日志时,它会在凌晨 1 点左右停止。

我已经查看了过去几个月创建的日志,并且在切割日志时非常随机。大多数情况下,它在 2400 和 0300 之间。

<appender name="fileLogAppender" type="log4net.Appender.RollingFileAppender" >
    <file name="filename" value="..\Logs\Errors.xml" />
    <encoding value="utf-8" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd"/>
    <threshold value="ERROR" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true"/>
    </layout>
  </appender>
<root>
    <level value="Debug" />
    <appender-ref ref="fileLogAppender" />
  </root>

这会输出带有错误的 XML 文件(我使用 YALV!来读取我们的日志)。我们的 Log4net 版本是 1.2.10(我们无法升级它,因为它带有第三方软件,如果更改 log4net 似乎会崩溃。

编辑1:

我正在运行一个 CMS 站点(EPiServer 6 R2)- IIS7 负载平衡中的 .NET4(4 个服务器 + 1DB)。昨天的 50MB 日志滚动到 4KB 的日志。

4

1 回答 1

0

我遇到了同样的问题,滚动文件只保存了从午夜到每天凌晨 2 点回收 appPool 的日志行,并且前一天的所有行都消失了。例如,问题可能是由于您的解决方案中有多个站点,其中不同的站点锁定了日志文件。这解决了我的问题,还提供了从所有负载平衡服务器登录到同一个日志文件的可能性,这真的很有帮助!

http://log4netremotelogging.codeplex.com/

于 2014-02-18T14:47:10.813 回答