【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。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/** * 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"), )); |
これで、このようなファイルたちが生まれます。
元のファイルと並べています。