正如手册中所述,如果错误来自@抑制,调用error_reporting()将返回0。但是,由于我的生产服务器总是设置为error_reporting(0) (在脚本之上),所以调用error_reporting()总是返回到0。
如何实际捕获或区分合法错误与@抑制的错误
现在,我的错误处理程序如下所示:
if (error_reporting() == (E_ALL OR -1))
echo 'display specific error';
elseif (error_reporting() == 0)
echo 'display general error';注意:这与我之前的问题有关。
发布于 2018-09-28 09:31:44
穆。您不应该将error_reporting设置为0,即使在生产中也是如此。
在开发过程中,您将希望将错误报告级别设置为尽可能高的级别,以便就将来可能出现问题的任何和所有错误、通知或弃用消息或可能出现的问题得到通知。
在生产中,您需要将错误报告级别设置为只包含错误和警告,而不是诸如弃用通知之类的内容。这是为了防止您的错误日志产生多余的信息,并能够有效地跟踪生产错误。
因为您应该始终日志错误。
在生产中不应该做的是在屏幕上显示错误。这就是ini_set('display_errors', true|false)所控制的。您仍然希望在生产中报告错误,这只是一个日志文件。
https://stackoverflow.com/questions/52552122
复制相似问题