Log4net(7) RollingFileAppender 意味不明パラメータ:StaticLogFileName(1)

名前と受け付ける値が全然違うので、わかりにくいことこの上ない。
ぱっと見、string を受け付けるものと思いきや、実は boolean となっている。
なんじゃそれーー。お前、なに考えてるねん!

まぁそれはともかく、このプロパティの意味は

  • 書き出すログファイル名を、常に File プロパティで指定したファイル名とするかどうか

である。
これを言葉で説明するのは非常に難しいので、サンプルを見てもらうことにする。
以下、サイズによるローテーションを行うこととする。


File = "hoge.log"
MaxSizeRollBackups = 2
StaticLogFileName = false
CountDirection = 1

とすると、

  1. 一番最初、hoge.log.0 が作成される
  2. そのままログをはき続けて、サイズによるローテーションが発生すると
    • hoge.log.0 <-- これはもう満杯
    • hoge.log.1 <-- これにログが吐き出される
  3. 尚もログをはき続けると
    • hoge.log.0
    • hoge.log.1 <-- 満杯になった
    • hoge.log.2 <-- これにログが吐き出されている
  4. さらにログをはき続けると
    • hoge.log.0 <-- バックアップファイル数の上限を超えたので削除される
    • hoge.log.1
    • hoge.log.2
    • hoge.log.3 <-- 今はこれにログが吐き出されている


File = "hoge.log"
MaxSizeRollBackups = 2
StaticLogFileName = true
CountDirection = 1

こっちは簡単で

  1. 一番最初、hoge.log が作成される
  2. そのままログをはき続けて、サイズによるローテーションが発生すると
    • hoge.log <-- 常にこれにログが吐き出される
    • hoge.log.1 <-- さっきまで hoge.log だった
  3. 尚もログをはき続けると
    • hoge.log <-- 常にこれにログが吐き出される
    • hoge.log.1
    • hoge.log.2 <-- さっきまで hoge.log だった
  4. さらにログをはき続けると
    • hoge.log <-- 常にこれにログが吐き出される
    • hoge.log.1 <-- バックアップファイル数の上限を超えたので削除される
    • hoge.log.2
    • hoge.log.3 <-- さっきまで hoge.log だった


File = "hoge.log"
MaxSizeRollBackups = 2
StaticLogFileName = true ※ false でも結果は同じ
CountDirection = -1

昨日と同じ解説になるけど

  1. 一番最初、hoge.log が作成される
  2. そのままログをはき続けて、サイズによるローテーションが発生すると
    • hoge.log <-- 常にこれにログが吐き出される
    • hoge.log.1 <-- さっきまで hoge.log だった
  3. 尚もログをはき続けると
    • hoge.log <-- 常にこれにログが吐き出される
    • hoge.log.1 <-- さっきまで hoge.log だった
    • hoge.log.2 <-- さっきまで hoge.log.1 だった
  4. さらにログをはき続けると
    • hoge.log <-- 常にこれにログが吐き出される
    • hoge.log.1 <-- さっきまで hoge.log だった
    • hoge.log.2 <-- さっきまで hoge.log.1 だった
    • さっきまでのhoge.log.2は削除される

明日は日付によるローテーションについて説明。