DEBUGが0のときのエラーロギング(CakePHP 1.1)

CakePHPではcore.phpにてDEBUGの定数を変えることで、製品版、開発版などの振る舞いを変えることができます。

これは便利なのですが、製品版(DEBUG=0)にすることで困る事がありました。
それは、error_reportingの設定が勝手に書き換えられ、error_reporting(0)になることです。
(/cake/libs/configure.php L:138)


つまり、log_errorsをONにしていても、何も書き出されないためエラーが発生しても気づかないんです。
ある意味、フレームワークであるCakePHPが不容易にエラー内容を画面に出力し、セキュリティ面から守ってくれているということなのですが、仕事として導入する上では、エラーがあった場合はログを残しておくことがいろんな意味で大切です。

なので、以下のように上書きしました。

ini_set('display_errors', 0);
error_reporting(E_ALL);

当然ですが、製品環境ではまちがえても display_errorsはONにしないように。。。