ログローテーション
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.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
-
HttpSocketを使用してリクエスト送信
CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H
-
-
コントローラ内でバリデーション処理を呼び出す
CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。
-
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
-
-
ログインに追加の条件を付与する「scope」
ユーザ登録では、仮登録処理(status=1)から送付したメール内のリンクをクリックしてもらい本登録(status=0)を行ってもらう実装をしました。仮登録の状態ではログインできないように実装するには
-
-
Syslogログエンジン
2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy
-
-
パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。
-
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま


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