3

ローリングファイルアペンダーがあり、毎晩ファイルをローリングします。ただし、ロールすると、新しいファイルには 1 つのログ エントリしかありません。ファイルがログエントリを追加していないようです。サービスを再起動すると、正しくログに記録されます。

ここに私の設定があります:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="Log.txt"/>
  <appendToFile value="true" />
    <staticLogFileName value="true" />
  <rollingStyle value="Date" />
  <datePattern value=" yyyy-MM-dd" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <threshold value="DEBUG" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%date [%thread] %-5level %logger  - %message%newline" />
  </layout>
 </appender>
4

2 に答える 2

3

問題が何であるかを見つけました。構成でこの行を削除したところ、ファイルをロールした後に正しく追加され始めました。

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
于 2010-09-07T21:39:03.317 に答える
1

おそらく値に設定maxSizeRollBackupsします (maxSizeRollBackups を負の 1 に設定して、無制限の数のバックアップ ファイルを許可します)。

この例では、RollingFileAppender を構成して、プログラムの実行ごとにログ ファイルを 1 回ロールする方法を示します。appendToFile プロパティを false に設定して、アペンダーが既存のファイルを上書きしないようにします。maxSizeRollBackups は負の 1 に設定され、無制限の数のバックアップ ファイルを許可します。ファイル サイズは制限する必要がありますが、ここでは 50 ギガバイトに設定されています。ログ ファイルが 1 回の実行でこのサイズ制限を超えると、ログ ファイルもロールされます。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile.txt" />
    <appendToFile value="false" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="50GB" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>

参照

于 2010-09-06T13:23:37.340 に答える