我希望PHP仍然将它的小错误和致命错误发送到错误日志,但不向用户显示。一开始我以为我可以使用error_reporting(0);
来抑制所有错误消息,句号,但这并不理想。我知道我也可以把所有的东西都放在尝试接球中,但这也不是很理想。对于常规错误,有没有像致命错误(例如register_shutdown_function()
)那样更自动的方法?
说到致命错误,我试着使用register_shutdown_function()
来捕捉它们,正如这个SO答案中所建议的那样。当我这样做时,发现了致命错误,但error_get_last();
总是空的。我还尝试使用debug_backtrace();
来捕获错误消息。它确实包含了我想要的关于致命错误的信息,但它似乎有不希望的副作用,即实际将信息打印给用户,这正是我试图避免的情况。
有没有其他方法可以做我在这里尝试做的事情,和/或我可以使用上面描述的方法来做这件事(将错误消息记录到控制台,但不记录到用户)?非常感谢。
在php.ini中设置display_errors=0
和log_errors=1
。
这应该是任何生产服务器的默认设置。