我是靠谱客的博主 机智时光,最近开发中收集的这篇文章主要介绍php错误屏蔽,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转载请注明地址: http://www.phpddt.com/php/php-error-log.html 尊重他人劳动成果就是尊重自己!


我们知道产品的生产环境肯定是不给予显示错误的,于是:

php.ini中将 display_errors = Off 改为display_errors = On

或者 ini_set('display_errors',0);

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

其实这种做法,我觉得不科学,在codeigniter框架就是这样:

    if (defined('ENVIRONMENT'))
    {
    	switch (ENVIRONMENT)
    	{
    		case 'development':
    			error_reporting(E_ALL);
    		break;
    	
    		case 'testing':
    		case 'production':
    			error_reporting(0);
    		break;
     
    		default:
    			exit('The application environment is not set correctly.');
    	}
    }



线上的错误信息肯定是要记录的,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.phpddt.com
     */
    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错误屏蔽的全部内容,希望文章能够帮你解决php错误屏蔽所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部