ログローテーション
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));
?>
関連記事
-
-
独自のバリデーションルールを作成
CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規
-
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま
-
-
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
-
-
CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」
「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。 導入 ダウンロード・解凍し
-
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
-
Syslogログエンジン
2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy
-
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook
-
-
HttpSocketを使用してリクエスト送信
CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H
-
-
入力文字列の長さ(文字数)をバリデーション
CakePHP 2には、コアバリデーションに文字列の長さを検証する関数が用意されています。 文字列長(コア)バリデーション minLength - 最小文字数以上であること maxLengt
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(


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