我希望PHP仍然将它的次要和致命错误发送到错误日志,但不会将其显示给用户。我一开始以为我可以使用error_reporting(0);
来抑制所有错误消息,周期,但这并不是很理想。我知道我也可以把所有东西都放在试一试,但这也不是很理想。对于常规错误,是否存在任何更自动的错误,例如致命错误(例如register_shutdown_function()
)?
说到致命错误,我尝试按照SO answer中的建议使用register_shutdown_function()
抓住它们。当我这样做时,捕获了致命错误,但error_get_last();
始终为空。我还尝试使用debug_backtrace();
来捕获错误消息。它 包含我想要的有关致命错误的信息,但它似乎具有实际将该信息打印给用户的不良副作用,这是我试图避免的情况。
有没有其他方法可以做我正在尝试做的事情和/或我可以这样做的方法(将错误消息记录到控制台而不是用户)使用我上面描述的方法?谢谢。
答案 0 :(得分:4)
在php.ini中设置display_errors=0
和log_errors=1
。
这应该是任何生产服务器的默认设置。