【问题标题】:How to prevent CodeIgniters from printing PHP errors如何防止 CodeIgniters 打印 PHP 错误
【发布时间】:2015-04-17 16:01:20
【问题描述】:

我有一个在 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 设置为“关闭”。

那么为什么我仍然在屏幕上看到错误信息?

【问题讨论】:

标签: php codeigniter logging heroku


【解决方案1】:

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

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

//set_error_handler('_exception_handler');

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

【讨论】:

  • 找到错误是修复它们的第一步。或者 CodeIgniter 2.x 是一个框架,仅适用于那些代码从来没有错误的人......
  • 好吧,你不能不欣赏 CI 强迫你通过总是打印它们来修复所有错误/警告/通知 :)。顺便说一句,我也是用 CI 2.x 的,没遇到这个问题,ENVIRONMENT 变量设置正确了吗?
猜你喜欢
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
相关资源
最近更新 更多