2

Log4Net worked fine for a few months and then started giving problems when rolling out a new file for the next day.

問題: 日中または 23:59 まではすべてがログに記録されますが、ロールオーバーするとすぐに、ロールされたファイルには翌日の 00:00 ~ 06:00 のデータが含まれます。前日のログはすべて失われます。

したがって、rolledfile の Service.log20100702 には、2010 年 3 月 7 日日付の 00:00 ~ 06:00 のデータが含まれ、他には何も含まれません。

問題は主にプロダクション ボックスにあり、私のローカル ボックスでは問題なく動作しています。

私のローリングファイルアペンダーは次のようになります

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\TTLLogs\Refunds\Ttl.Refunds.Web.UI.log"/>
      <appendToFile value="true" />
      <datePattern value="yyyyMMdd" />
      <rollingStyle value="Date" />
      <maximumFileSize value="10MB" />
      <maxSizeRollBackups value="100" />
      <layout type="log4net.Layout.PatternLayout">
        <header value="[Header]&#xA;"/>
        <footer value="[Footer]&#xA;"/>
        <conversionPattern value="%date %-5level %logger ${COMPUTERNAME} %property{UserHostAddress} [%property{SessionID}] - %message%newline"/>
      </layout>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
4

1 に答える 1

1

私は試してみたい:

  • < staticLogFileName value="true" / > を追加します。これにより、アペンダーが日付をロールするときにファイルの名前が変更されるのを防ぎます。
  • 別のプロセスがログ ファイルをロックしないようにするには、lockingModel をFileAppender.ExclusiveLockに変更します。つまり、同様のウイルス スキャナがログ ファイルをロックしている可能性があります。
  • RollingStyleが Dateの場合は適用されないため、maximumFileSizeを削除します。
  • ロギングが再び期待どおりに機能するまで、余分なログ ファイルを手動で削除できるため、maxSizeRollBackupsを削除します。
于 2010-07-08T22:38:42.510 に答える