PHP:在文件中记录错误但不将它们显示给 POST/GET 请求

Posted

技术标签:

【中文标题】PHP:在文件中记录错误但不将它们显示给 POST/GET 请求【英文标题】:PHP: log errors in file but don't display them to POST/GET requests 【发布时间】:2017-02-24 17:48:24 【问题描述】:

我想将所有 php 错误记录到一个日志文件中,但我不想将它们显示给用户。

我在php.ini中使用如下配置

track_errors=On
error_reporting = E_ALL
log_errors=On
display_errors = Off
error_log = php-error.log
date.timezone = Europe/Berlin

我现在面临的问题: 我使用 Ionic 应用程序。这请求我的服务器上的一些 php 文件。当这个 php 文件包含一些警告时,它们也会被传输,并且 Ionic 应用程序停止工作,因为它只需要一个带有 callbackjsonp 响应,并且不允许任何回显语句或类似的东西。所以我在每个文件的开头使用error_reporting(0);,但这又完全关闭了错误。

如何完全关闭错误的传输/显示,并将它们写入文件?

【问题讨论】:

display_errors = Off 应该可以解决问题,您确定您使用的是正确的 php.ini 文件吗?您需要在 php.ini 更改后重新启动服务器才能使其生效。 我使用的是托管服务器。我不确定我是否可以重新启动这台机器。但如果我可以信任phpinfo();,那么display_errors 应该关闭。 如果你把 ini_set('display_errors', '0');在你的 php 脚本的顶部? 【参考方案1】:

另一个解决方案是实现您自己的错误处理程序脚本/类,您可以将其包含在您的项目或应用程序的每个脚本中。这将允许您利用记录任何您想要的错误。

【讨论】:

以上是关于PHP:在文件中记录错误但不将它们显示给 POST/GET 请求的主要内容,如果未能解决你的问题,请参考以下文章

让 Maven2 将资源复制到构建目录,但不将它们捆绑在 JAR 中

在 cPanel 中创建自定义 PHP 错误页面,而不将它们从引发错误的页面重定向

AFTER DELETE 触发器触发但不将记录插入审计表

PHP更新记录按钮不将信息传递到另一个页面

毕加索加载横向图像但不将纵向加载到标记的信息窗口中

iOS如何显示具有资产库路径的图像而不将它们绑定到实例变量