shima111の日記

カレンダー
2004 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 03 | 04 | 06 | 07 | 10 | 11 | 12 |
2006 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2007 | 01 | 02 | 03 | 05 | 08 | 09 |
2008 | 01 | 02 | 03 | 05 | 06 | 07 |
2009 | 03 | 04 | 05 | 06 | 09 | 10 | 11 | 12 |
2010 | 01 | 03 | 04 | 05 | 07 |
2011 | 03 | 04 | 07 | 08 | 09 | 10 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 03 | 04 | 05 | 07 | 11 |
2015 | 01 | 02 | 07 | 08 | 09 |
2016 | 03 | 05 | 06 | 07 |
2017 | 05 |

2006-06-27 ログ!ログ!ログ!!

[] Log4net(6) RollingFileAppender 意味不明パラメータ:CountDirection

もうね、Log4net のネーミングセンスは非常に奥ゆかしいものがあるのだが、特にこれはすごい。奥ゆかしすぎて、おかしいぐらいだ。

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

である。

プロパティとしてセットする値は、負の数か、0以上の整数か、で、数値の大きさは意味をもたず、boolean 的に動作する。

このプロパティ、名前もさることながら、受け取る値からして、めちゃくちゃ変なのだが、誰も不思議に思わなかったのだろうか・・。

んで、具体例を示すと、

File = "hoge.log"
MaxSizeRollBackups = 2;

として、ログを出し続けると、いずれ

hoge.log
hoge.log.1
hoge.log.2

ログファイルが出力される。んで、さらにログファイルを出力し続けると、またローテーションが発生するのだが、

  • CountDirection = -1 の場合のローテーション

hoge.log -> hoge.log.1
hoge.log.1 -> hoge.log.2
hoge.log.2 -> 削除
hoge.log -> 新規作成

となり、結果

hoge.log
hoge.log.1
hoge.log.2

というログファイルが残る。

  • CountDirection = 1 の場合のローテーション

hoge.log -> hoge.log.3
hoge.log.1 -> 削除
hoge.log.2 -> そのまま
hoge.log -> 新規作成

となり、結果

hoge.log
hoge.log.2
hoge.log.3

というログファイルが残る。

これでわかるかしら??

当然、CountDirection=1 の方がログファイルmoveが減るので、パフォーマンスはこちらの方がよい。MaxSizeRollBackups が大きければ大きい程、効いてくる。MaxSizeRollBackups = 8 の時で、13%ぐらいの性能差がありました。

  • ネーミング

私としては、このプロパティ名を「bReuseBackupLog」というのにして、boolean を受け取るようにすればわかりやすくなるんでは?と思ってるけど、、

# えーっと、なんでこんなにはてな日記は見にくくなるの?誰かもっときれいなレイアウトで書ける方法を教えて・・

トラックバック - http://d.hatena.ne.jp/shima111/20060627/p1
Connection: close