【问题标题】:Log4net losing information after rollover翻转后 Log4net 丢失信息
【发布时间】:2014-01-23 03:50:58
【问题描述】:

我今天发现我们的生产系统的日志文件中丢失了很多内容。我们当前的日志文件包含所有内容(从午夜到午夜),但是当我查看前一天的日志时,它会在凌晨 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 似乎会崩溃。

EDIT1:

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

【问题讨论】:

  • 您能多解释一下您的系统吗?如果它是一个 IIS 应用程序,它可能由于缺乏使用而处于休眠状态。
  • 添加了更多信息@EricScherrer
  • 你说的翻转是指当它切断昨天的日志并开始一个新文件时,你上次检查它时只有4KB?
  • @EricScherrer 我的意思是,在我睡觉之前,我们当前的 Errors.xml 高达 50MB,而当午夜发生翻转时,23-01-14 的文件现在只有 4KB。我本来预计该文件会超过 50MB,因为它就在那儿。
  • 好吧,我只是在这里拍摄。我认为您需要在日志文件名中包含日期,否则它将继续被覆盖。这是一个示例:

标签: log4net log4net-configuration log4net-appender


【解决方案1】:

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

http://log4netremotelogging.codeplex.com/

【讨论】:

  • 谢谢,我会试一试。看起来很有希望。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
相关资源
最近更新 更多