我有一个在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
设置为“关闭”。
那为什么我仍然看到屏幕上出现错误?
答案 0 :(得分:2)
事实证明CodeIgniter 2.x有一些完全asinine错误处理,他们使用自定义错误处理程序来忽略开发人员配置。显然,这已在v3中修复。
我能够通过注释掉自定义错误处理来修复它,对于我来说,它位于CodeIgniter.php第72行...
//set_error_handler('_exception_handler');
或者最好的解决方案:首先不要使用CodeIgniter。