CakePHP-debug0でもログだけは出力

 Cakeを触り始めてもうすぐ半年
 色々とわかってきた気がするぞー
 んでCakeアプリを本番環境で動かす時の話なんですが。
 core.phpのdebugを0(運用モード)にしておけば、どんなエラーが発生しようとも絶対表には出さない安全仕様。
 memory_limitにひっかかって落ちてもログファイルには何ひとつ記録されないとかCake様超ステキ。
 FWの動作が気に食わねぇなら手前で書き直しやがれ何の為のLLだ!?
 と誰かに言われた気がしたので調べてみたよ。
 バージョンは1.2.4です。
 cake/libs/configure.php
 293行目あたり

if (isset($config['debug'])) {
    if (
$_this->debug) {
        
error_reporting(E_ALL);
        if (
function_exists('ini_set')) {
            
ini_set('display_errors'1);
        }
        if (!
class_exists('Debugger')) {
            require 
LIBS 'debugger.php';
        }
        if (!
class_exists('CakeLog')) {
            require 
LIBS 'cake_log.php';
        }
        
Configure::write('log'LOG_NOTICE);
    } else {
        
error_reporting(0);
        
Configure::write('log'LOG_NOTICE);
    }
}

 ここでerror_reporting(0)されてますねー
 こいつをどうにかした上でdisplay_errorsとかlog_errorsをどうにかしてやれば
 無事にログだけ記録されるようになりましたとさ。


コメントを残す