PHP 错误报告生产与开发

PHP Error Reporting Production vs Development

提问人:xylar 提问时间:5/30/2018 最后编辑:Cœurxylar 更新时间:1/20/2021 访问量:15767

问:

在开发和生产应用程序上设置错误报告时,最佳做法是什么?目前我有以下几点:

// development
error_reporting(E_ALL);

// production
ini_set('display_errors', 0);
ini_set('log_errors', 1);
error_reporting(E_ERROR | E_WARNING | E_PARSE);
PHP 错误报告

评论

0赞 Can O' Spam 5/30/2018
我的意见 - 将其开发为有 0 个错误并将 error_reporting 设置为在生产中关闭,除非您需要它进行调试
3赞 Spoody 5/30/2018
在生产环境中禁用display_errors
0赞 xylar 5/30/2018
我已经更新了我的问题,以确认显示错误已关闭,日志错误已实时打开。
0赞 delboy1978uk 5/30/2018
在任何环境中都最好完全关闭。有时,错误会导致标头过早发送,从而完全使脚本枯燥无味!尾随日志!display_errors

答:

3赞 delboy1978uk 5/30/2018 #1

为了获得最佳的错误日志记录体验,请设置为(绝对所有内容),关闭,然后设置自定义 .error_reporting-1display_errorserror_log

然后在终端中,键入 .您的通知、警告和错误现在将实时滚动过去,而不会扭曲网页的显示。tail -f /path/to/error_log

记录一切总是值得的。在任何环境中。

评论

1赞 xylar 5/30/2018
我不得不在一个有太多通知错误的网站上工作,以至于发现 /real/ 错误很棘手。同样出于某种原因,一个请求在记录所有错误时抛出 500 错误。
0赞 delboy1978uk 5/30/2018
大多数通知只需要简单的修复,例如检查。在循环中修复通知可以大大减少错误日志。一切都是错误的!把它们都扔掉!空日志是一个做它应该做的事情的网站!isset()
26赞 Gordon 5/30/2018 #2

引用应该与PHP捆绑在一起的php-production.ini

; PHP comes packaged with two INI files. One that is recommended to be used
; in production environments and one that is recommended to be used in
; development environments.

; php.ini-production contains settings which hold security, performance and
; best practices at its core. But please be aware, these settings may break
; compatibility with older or less security conscience applications. We
; recommending using the production ini in production and testing environments.

并进一步

; display_errors
;   Default Value: On
;   Development Value: On
;   Production Value: Off

; display_startup_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: Off

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
;   Development Value: E_ALL
;   Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

; html_errors
;   Default Value: On
;   Development Value: On
;   Production value: On

; log_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: On

既然你要求最佳实践,我建议你去做。