如何防止CodeIgniters打印PHP错误

时间:2015-04-17 16:01:20

标签: php codeigniter logging heroku

我有一个在Heroku Cedar实例上运行的CodeIgniter PHP应用程序。

我们正在运行PHP应用程序,我们需要记录错误,但不要将它们打印到屏幕上。无论我做什么,错误都会打印到屏幕上,这对生产来说是不安全的。

以下是适用于我的本地环境和其他任何地方(除了Heroku)的PHP代码:

error_reporting(E_ALL); #we care about all errors ini_set('display_errors',0); #but DONT print to screen

我看到this document建议我尝试添加一个自定义CodeIgniter日志记录类,但这不起作用。

我还在应用中添加了phpinfo(),以检查我的设置是否被覆盖在下游,但它显示display_errors设置为“关闭”。

那为什么我仍然看到屏幕上出现错误?

1 个答案:

答案 0 :(得分:2)

事实证明CodeIgniter 2.x有一些完全asinine错误处理,他们使用自定义错误处理程序来忽略开发人员配置。显然,这已在v3中修复。

我能够通过注释掉自定义错误处理来修复它,对于我来说,它位于CodeIgniter.php第72行...

//set_error_handler('_exception_handler');

或者最好的解决方案:首先不要使用CodeIgniter。