我们最近将服务器从PHP4升级到PHP5.4
正在运行的应用程序在日志文件中记录了大量错误。其中大多数都是不推荐使用的错误,或者由于PHP版本的变化而导致的一些小问题。
我现在没有时间解决所有问题,但是error_log文件在几天内就已经膨胀到10G。
在我设置的php.ini中 log_errors =关
我还能做什么?
答案 0 :(得分:3)
只需在php.ini
中关闭这些警告即可error_reporting = E_ALL & ~E_DEPRECATED
运行时:
error_reporting(E_ALL & ~E_DEPRECATED);
答案 1 :(得分:2)
这取决于您要报告的错误(如果有)。如果您不希望报告任何错误(我认为是个坏主意),请使用:
error_reporting(0);
在剧本的顶部。
如果您只想关闭已弃用的错误,则需要使用bitwise operators使用一些predefined error constants。我相信以下内容适合您的想法:
error_reporting(E_ALL ^ (E_DEPRECATED & E_STRICT & E_NOTICE))
这仍会留下致命的错误和可捕获的错误,(其中2个将暂停脚本以便它们很好地捕获),但是省略了“你的脚本是旧的”类型错误。
还可以将不太理想的错误发送到另一个错误日志,以便稍后处理它们,但不会阻塞主错误日志。询问是否感兴趣。
由于E_STRICT
中未包含E_ALL
,因此以上内容将 on E_STRICT
(当我们假设 ALL <时,这只会引起混淆/ strong>意味着,所有这些(所有位都被翻转)。所以这将产生这三个错误被关闭的期望结果:
error_reporting(E_ALL ^ (E_DEPRECATED & E_NOTICE))
或者,为了吃我对zuul答案的评论,我也会这样做(虽然逻辑会伤害我的头脑):
error_reporting(E_ALL & ~(E_DEPRECATED | E_STRICT | E_NOTICE))
此外,由于您特别提到了Apache,您应该知道不能在PHP脚本之外使用预定义的错误常量,您必须使用实际的位掩码值。在这种情况下,您可以将以下内容添加到config或htaccess文件中:
php_value error_reporting 22519
我没有在文档中的任何地方找到这种情况下支持按位操作的地方,所以如果你想调整error_reporting级别,你可以简单地用以下内容创建一个php脚本:
echo E_ALL & ~(E_DEPRECATED | E_STRICT | E_NOTICE);
将输出该位掩码的十进制形式(显然更改常量以匹配您想要关闭的位置)。
答案 2 :(得分:0)
您可以尝试将以下内容添加到文件顶部:
error_reporting(E_NONE);