
【CakePHP2】ログを月別でログローテーションする方法
2015/01/12
CakePHP2の /app/tmp/logs/ 以下に作成される、error.log と debug.log を月別のファイル名でローテーションする方法。
CakePHP2系統ではかなり手軽に出来ます。
CakePHP2でログローテーション
デフォルトでは /app/tmp/logs/ に
debug.log
error.log
が自動作成され、それぞれのログファイルに延々とログが溜まっていく形ですが、知らない間にこれでもかってぐらいのエラーログが溜まってしまい、エラいことになることがあると思います。
それらの対応として、ファイル自体を月別にして管理しようという考えです。
今回、試したバージョンは2.3.6です。
/app/Config/bootstrap.php
/app/Config/bootstrap.php ファイルに、ロギングの設定が端から記述されています。
「logging」で検索すれば一発で出てきます。
配列の「file」のvalueがデフォルトでは「debug」「error」となっているので、
その部分を「debug-年月」「error-年月」となるように変更すればOK。
[php mark="9,16"]
/**
* Configures default file logging options
*/
App::uses('CakeLog', 'Log');
CakeLog::config('debug', array(
'engine' => 'FileLog',
'types' => array('notice', 'info', 'debug'),
//'file' => 'debug', // (2014.01.10) Original
'file' => 'debug-' . date("Ym"),
));
CakeLog::config('error', array(
'engine' => 'FileLog',
'types' => array('warning', 'error', 'critical', 'alert', 'emergency'),
//'file' => 'error', // (2014.01.10) Original
'file' => 'error-' . date("Ym"),
));
[/php]
これで、このようなファイルたちが生まれます。
元のファイルと並べています。