PHP错误日志控制(display_errors和error_reporting)

Posted Web学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP错误日志控制(display_errors和error_reporting)相关的知识,希望对你有一定的参考价值。

php学习中display_errors和error_reporting是两个非常重要的参数,在程序调试过程中缺少不了,下面就来介绍一下这两个错误日志的配置如何开启和关闭:

我们知道在产品的生产环境肯定是不能够显示错误的,于是:
php.ini中将 display_errors = On 改为display_errors = Off
或者 ini_set(‘display_errors‘,0);

其次,我们知道php的错误级别是由error_reporting控制,但是有很多人在生产环境关闭了错误信息提示,像这样error_reporting(0);

error_reporting(0)这样会导致所有的错误信息不会记录,应该:error_reporting = E_ALL & ~E_NOTICE,只要display_errors = Off,错误信息就不会再页面上显示,因为display_errors的优先级别更高。

 

特别要注意的是:
如果php.ini中log_errors= On,据官方的说法,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。将log_errors = Off就行了。

总结下,在生产环境中不显示错误信息还能记录错误日志:

<?php
/**
 * 记录生产环境错误日志
 * 
 * @link http://www.111cn.net
 */
error_reporting(E_ALL);
ini_set(‘display_errors‘,0);
ini_set(‘log_errors‘,1); 
ini_set(‘error_log‘,‘E:\‘.date(‘Y-m-d‘).‘_phpddt.com.txt‘);

 

以上是关于PHP错误日志控制(display_errors和error_reporting)的主要内容,如果未能解决你的问题,请参考以下文章

PHP优化笔记

PHP错误日志

PHP错误日志笔记

centos7 php性能调优

将PHP错误输入到日志文件中

php错误提示