5

x時間ごとにログを取得したい場合、log4netを変更する方法はまだわかりません。私はこれを持っています:

      <log4net>
        <root>
          <level value="DEBUG"/>
          <appender-ref ref="LogFileAppender"/>
        </root>
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="C:\log.txt"/>
          <param name="AppendToFile" value="true"/>
          <rollingStyle value="Size"/>
          <maxSizeRollBackups value="10"/>
          <maximumFileSize value="100MB"/>
          <staticLogFileName value="true"/>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
          </layout>
        </appender>
  </log4net>

私は 1 つのログを持っており、常にこの 1 つの log.txt にログを追加しています。今では、毎日新しいログ ファイル (24 時間) または 12 時間ごとに新しいログを作成したいと考えています。構成で何を変更する必要がありますか? 私の設定への提案はありますか?ありがとうございました

4

2 に答える 2

9

RE: http://logging.apache.org/log4net/release/config-examples.html

この例は、RollingFileAppender を構成して、日付期間にログ ファイルをローリングする方法を示しています。この例では、ログ ファイルを 1 分ごとにローリングします。ローリング期間を変更するには、DatePattern 値を調整します。たとえば、「yyyyMMdd」の日付パターンは毎日ローリングします。System.Globalization.DateTimeFormatInfo利用可能なパターンのリストについては、を参照してください。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd-HHmm" />
<layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>

特定のケースでは、上記の例で<datePattern value="yyyyMMdd-HH" />は、1 時間ごとにしかログを記録できません。

ただし、1 時間ごとにログを記録したい場合は、次のスケジュールされたログ間隔の日付に対して現在の時刻をチェックするメソッドXから派生したカスタム アペンダーを作成しRollingFileAppenderてオーバーライドすることができます。たとえば、Log4Net RollingFileAppender を毎週ローリングするように設定するをAdjustFileBeforeAppend参照してください。

于 2012-08-23T22:05:14.800 に答える
1

ローリング スタイルを次のように置き換えます。

<rollingStyle value="Date" />

おそらく、ファイル サイズの制限も削除する必要があります。

于 2012-08-23T22:03:04.250 に答える