質問 > 管理機能 > ログローテーション処理について |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
patapata |
投稿日時: 2010/9/17 22:14
対応状況: −−−
|
仙人 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
Re: ログローテーション処理について 追加情報:
原因がなんとなくわかりました。 file_exists や filesize はどうやらキャッシュが残るらしく clearstatcache(); で消さないと駄目なようです。 現象が発生しない方は、おそらくPHPのバージョンの違いかと思われます。 PHP Ver5.1.6をご使用の方がおりましたら、logファイルの状態をご報告してくれると助かります。 また以下のように入れてみたところ、ファイルが消えることはなくなりましたが・・・filesizeでワーニングを吐くようになりました。 あとちょっとっぽい。 ---現状コード------------- function gfLogRotation($max_log, $max_size, $path) { // ファイルが最大サイズを超えていない場合、終了 clearstatcache(); if (filesize($path) <= $max_size) return; // アーカイブのインクリメント(削除を兼ねる) for ($i = $max_log; $i >= 2; $i--) { $path_old = "$path." . ($i - 1); $path_new = "$path.$i"; if (file_exists($path_old)) { clearstatcache(); rename($path_old, $path_new); } } // 現在ファイルのアーカイブ rename($path, "$path.1"); } |
フラット表示 | 前のトピック | 次のトピック |