ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。
日ごとにログを切り替える設定
app/Config/bootstrap.phpを以下のように変更もしくは追加して下さい。
// app/Config/bootstrap.php[変更or追加 後] /** * Configures default file logging options */ App::uses( 'CakeLog', 'Log'); CakeLog::config( 'debug', array( 'engine' => 'FileLog', 'types' => array( 'notice', 'info', 'debug'), 'file' => date( 'Ymd') . '_' . 'debug', // 変更 // 'size' => ‘5MB’ // 5Mごとにファイル切替 // 'rotate' => 20 // 20ファイルまで切替 )); CakeLog::config( 'error', array( 'engine' => 'FileLog', 'types' => array( 'warning', 'error', 'critical', 'alert', 'emergency'), 'file' => date( 'Ymd') . '_' . 'error', // 変更 ));
これで、日を跨ぐごとにapp/tmp/log下にyyyymmdd_debug.logとyyyymmdd_error.logで作成されるようになります。
オプション
2.4で以下のオプションが追加されました。上の設定では日付ごとにローテーションされますが、さらに同一(同日付)ファイルに対してローテーションが行われます。ファイル名は、'file'に切替が行われた時間のUNIXタイムスタンプが付与されます。
- size:1つのファイルの上限サイズ 上限に達するとファイルの切替が行われます。(デフォルト10M)
- rotate:ローテーションの最大数。設定数前のファイルは削除されます。(デフォルト10)
CakePHP 1.3では
1.3ではbootstrap.phpには記述されていないため、以下そのまま追記して下さい。
CakePHP 1.3 - ログローテーション
// app/config/bootstrap.php <?php $log_path = LOGS.DS.date('Ymd').'_'; CakeLog::config('default', array('engine' => 'FileLog', 'path' => $log_path)); ?>
関連記事
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
(メール・URL・電話・郵便・IP) データ バリデーション
今回は、プロフィール情報に使用されるデータに絞ったバリデーションルールです。 バリデーションルール 以下の5つのバリデーションルールがコアに用意されています。 email メールアドレス
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
-
DebugKitを導入
定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし
-
Blowfishを使用してハッシュ化する
使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
CakePHP インストール時エラーの対処
CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設
-
Jsヘルパーを使用してAjax更新
更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
Comment
この辺の絡みで
ログローテーション https://t.co/W37Ig2RYJK
(CakePHP2.x)2.3から2.6へバージョンアップしてみる
https://t.co/VZpH5pRRPG
を見てる。
[…] CakePHP 2.x – ログローテーション http://kwski.net/cakephp-2-x/1048/ […]
CakePHP 2.x: ログローテーション | Think deeply, Do less, More effective http://t.co/ONpWxAjWbx
RT @kwski3: 2.4から追加されたローテーションオプションを追記 CakePHP ログローテーション http://t.co/MkmVurpxoG
CakePHPのログローテーション / CakePHP 2.x | ログローテーション
[…] CakePHP 2.x | ログローテーション | Think deeply, Do less, More effective […]
お、CakePHP2.xではログパスが変更可能。http://kwski.net/cakephp-2-x/1048/
CakePHP 2.x: ログローテーション | Think deeply, Do less, More effective http://htn.to/3KyUWJArLGL