









[blog]
[ML]
[todo]
[CVS]
[bug]
[apache log]
[swiki log]
[statistics]
[map]
[man]
[info]
[アンテナ]
ログファイルの実装と後処理問題
ちょっと思ったこと。
通常のアプリの実装でログファイルを実装した場合、プログラムは下記のように
書くのが一般的でしょう。
(1) ログファイルをオープン(ないときは新規作成)
(2) (1)で取得したファイルディスクプリクタ(fd)を保持し、ログ出力時にfdにアペン
ド。
したがって アプリ実行中にログファイルを削除し、touchで作成しても、fdは
一致しなくなる(当然のこと)
ということは、アプリ実行中にログファイルをいじくってはいけない。
これを解決するには、
- ログをいじってから、アプリを再起動する。
- ログをコピーして、コピーしたログをいじる(この場合、ログの肥大化は避けられな
い)
logrotateでは、syslog取得時には、1の方法を用いてる。

Links to this Page