代码之家  ›  专栏  ›  技术社区  ›  Dandikas

log4net日志文件修改日期早于日志输入日期。时间机器?

  •  1
  • Dandikas  · 技术社区  · 15 年前

    我们从一个客户那里得到了一个奇怪的错误报告:“日志文件的最后修改日期比日志条目时间戳早”。

    差异以天(约2天)为单位。这不是一个固定的事情-只是目前已知的一个案例。

    我不是log4net实现中的专家-仅将其用作第三方。下面提供了记录器配置,是否有可能是由于log4net rollingfileappender概念中的某些错误配置或误解而导致的?

    只对log4net作为一个可能的问题来源感兴趣(即,我确实理解,有外部的方法来实现这一点……也许是一些糟糕的日志文件管理工具,错误地修改了日期)

    <appender name="CustomAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="log.txt" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="2" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <param name="MaximumFileSize" value="100MB" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <conversionPattern value="%date %-5level %message%newline" />
      </layout>
    </appender>
    <logger name="CustomLogger" additivity="false">
      <level value="ALL" />
      <appender-ref ref="CustomAppender" />
    </logger>
    

    代码的用法是直接的(简化的):

    LogManager.GetLogger("CustomLogger").Info("Message");
    

    log4net版本:1.2.10.0 该应用程序是Windows服务。语言-C 3.0,但我想这无关紧要。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Rob Levine    15 年前

    我也经常在log4net上看到这一点。报告的日期时间可能只是log4net上次打开日志文件进行写入的日期时间。

    在再次关闭文件之前,它可能不会更新文件日期时间。

    [ 编辑: 我刚刚在我的机器上打了一个简单的例子, 不要 查看您描述的行为,但我以前见过-可能是在Windows2003服务器上(与目前使用的XP不同)。看看你是否至少可以排除这种可能性]