CakePHP2でログローテーション

CakePHPでのログローテーションの設定

1系だと、ログローテートをするためにはログエンジンを自作する必要があった。
具体的には

CakeLog:: config('default', array ('engine' => 'MyLog'));

とか

CakeLog::config('default', array('engine' => 'FileLog', 'path' => $log_path));

みたいな感じ。

2系だと、bootstrap.phpに記述されている以下の設定のfileの部分を動的に変更できるようにするだけでログのローテートをすることができる。

App::uses ('CakeLog' , 'Log' );
CakeLog::config ('debug' , array(
        'engine' => 'FileLog',
        'types' => array ('notice' , 'info' , 'debug' ),
        'file' => 'debug-' . date( 'Ym'),
));
CakeLog::config ('error' , array(
        'engine' => 'FileLog',
        'types' => array ('warning' , 'error' , 'critical' , 'alert' , 'emergency' ),
        'file' => 'error-' . date( 'Ym'),
));

やっと標準でもログローテーションに対応できるようになった。