Rumah >pembangunan bahagian belakang >tutorial php >php中display_errors与log_errors的区别

php中display_errors与log_errors的区别

WBOY
WBOYasal
2016-07-25 09:03:281017semak imbas
  1. # vim /etc/php.inidisplay_errors = Off
  2. log_errors = On
  3. error_log = /var/log/php-error.log
复制代码

另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。 display_errors = Off //display中文意思是显示所以display_error=off的意思就是不显示错误了! error_reporting 设定错误讯息回报的等级 2047我记得应该是E_ALL。 php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅 参考资料)。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值: display_errors = Off //关闭所有错误信息,为ON时为显示所有错误信息。 error_reporting = E_ALL E_ALL能从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出 所以不建议使用2047,最好把默认值改为:error_reporting = E_ALL & ~E_NOTICE

PHP.ini中display_errors = Off失效的解决

问题: PHP设置文件php.ini中明明已经设置display_errors = Off,但是在运行过程中,网页上还是会出现错误信息。 解决: 经查log_errors= On,据官方的说法,当这个log_errors设置为On,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。于是将log_errors = Off,问题就解决了。

经常见到error_reporting(7)直意为:设定错误讯息回报的等级。

value constant 1 E_ERROR 2 E_WARNING 4 E_PARSE 8 E_NOTICE 16 E_CORE_ERROR 32 E_CORE_WARNING 64 E_COMPILE_ERROR 128 E_COMPILE_WARNING 256 E_USER_ERROR 512 E_USER_WARNING 1024 E_USER_NOTICE 2047 E_ALL 2048 E_STRICT 然而7=1+2+4 就是出错时显示1 E_ERROR 2 E_WARNING 4 E_PARSE

  1. //禁用错误报告
  2. error_reporting(0);
  3. //报告运行时错误
  4. error_reporting(E_ERROR | E_WARNING | E_PARSE);
  5. //报告所有错误
  6. error_reporting(E_ALL);
  7. ?>
复制代码


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn