質問 > 管理機能 > ログローテーション処理について |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
patapata |
投稿日時: 2010/9/15 17:27
対応状況: −−−
|
仙人 登録日: 2010/7/7 居住地: 神奈川県 投稿: 502 |
ログローテーション処理について 環境:
EC-CUBE 2.4.4 OS Linux DBサーバ MySQL 5.0.77 WEBサーバ Apache PHP 5.1.6 Webブラウザ IE8 いつもお世話になっております。 現在ログローテーションが起きるタイミングにおいて、 Warningが発生しており原因を追いかけてみましたが、よくわからなかったので質問させて頂きました。 詳細: 関係ありそうな、設定は以下です。 MAX_LOG_QUANTITY = 5 MAX_LOG_SIZE = "1000000" site.logのファイル権限は、全て"666" Warning内容: GC_Utils.phpのgfLogRotation関数にてrenameに失敗。 Warning: rename(・・・/site.log.1) [function.rename]: そのようなファイルやディレクトリはありません またWarningだけなら特に気にしておりませんでしたが、上記Warningが発生した場合site.logファイルが消えてしまいます。 →例えば、site.log、site.log.1〜5までファイルが存在している状態でログローテーション処理が発生した場合、site.log.1やsite.log4のファイルがなくなってしまいます。 また、MAX_LOG_SIZE = "10000"に変えサイトトップで、何度かリロードを行い確認したところrename処理が何重にも走っているようです。これは想定された動作なのでしょうか? -----------------参考----------------------------------- function gfLogRotation($max_log, $max_size, $path) { // ファイルが最大サイズを超えていない場合、終了 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)) { rename($path_old, $path_new); } } // 現在ファイルのアーカイブ rename($path, "$path.1"); } |
フラット表示 | 前のトピック | 次のトピック |