【问题标题】:How to stop PHP from logging PHP Notice errors如何阻止 PHP 记录 PHP Notice 错误
【发布时间】:2010-01-20 05:01:48
【问题描述】:

我正在尝试不记录通知错误,这些错误正在写入我服务器上的错误日志文件。我试过了(在我的index.php 顶部):

ini_set('display_errors', 0);  
error_reporting(E_ALL ^ E_NOTICE);

但我仍然在所述错误日志文件中收到 PHP 通知错误。

我在共享主机环境中,因此无法编辑我的 php.ini 文件。

phpinfo() 告诉我:

- Version 5.2.12
- error_reporting 6143
- error_log error_log
- safe_mode Off

【问题讨论】:

  • 解决通知的原因,而不是对此视而不见?它们不会无缘无故地发生。
  • 通知的原因并不总是您可以控制的,例如我正在使用 WordPress,并且有几个通知来自核心。想要抑制非致命错误是合法的。

标签: php logging


【解决方案1】:

如果您使用的是 Apache 服务器,请尝试在 .htaccess 文件中设置值。一般格式为:

php_flag  log_errors on
php_value error_log  /path/to/error.log
php_value error_reporting integer

其中integer 是您通过运行以下代码获得的值:

echo E_ALL & ~E_NOTICE; // prints 30711

更多信息在这里:

http://perishablepress.com/press/2008/01/14/advanced-php-error-handling-via-htaccess/

【讨论】:

  • 当心!代码(如 30711)在不同的 PHP 版本上可能有所不同。最好检查服务器本身的回显,您将在其中应用配置
【解决方案2】:

尝试做:

error_reporting(E_ALL & ~E_NOTICE);

error_reporting() 指令将始终有效 (PHP_INI_ALL)。

你确定你没有包含任何改变你的错误报告级别的库吗?


执行error_reporting(0);,然后执行此操作:

var_dump(error_reporting());

输出是什么?

【讨论】:

  • 我在整个项目中搜索了“error_reporting”,它只在 index.php 文件中显示了一个命中,这就是我添加的 error_reporting。也没有出现“set_error_handler”。
  • @magenta:也没有ini_set()
  • var_dump 输出 int(6135) 即 E_ALL & ~E_NOTICE
  • 还有另外两个ini_set,但是他们设置了sendmail_from
  • 6135 = E_RECOVERABLE_ERROR + E_USER_NOTICE + E_USER_WARNING + E_USER_ERROR + E_COMPILE_WARNING + E_COMPILE_ERROR + E_CORE_WARNING + E_CORE_ERROR + @98765433@@5 + @98765433@@5 + E_ERROR。没有E_NOTICE 那里。
【解决方案3】:

您的日志中是否收到通知或“用户”通知?

禁用两者使用:

error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE);

【讨论】:

  • 在日志中显示为“PHP Notice”
  • 我相信两者都被记录为“PHP通知”。您可以在 phpcode 中搜索“trigger_error”或 E_USER_NOTICE。
【解决方案4】:

您可以将错误报告级别更改为不同的级别

error_reporting(E_ERROR | E_WARNING | E_PARSE);

更多信息请参见http://www.php.net/manual/en/function.error-reporting.php

【讨论】:

  • 我也试过了,包括你的变化 - 仍然被记录下来。 php.ini 中有没有办法使 ini_set() 和 error_reporting() 不起作用?
猜你喜欢
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 2014-01-01
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 2017-07-24
  • 2012-01-02
相关资源
最近更新 更多