PHP线上错误日志控制(error_reporting和display_errors)
发布:smiling 来源: PHP粉丝网 添加日期:2014-06-26 08:38:22 浏览: 评论:0
在php学习中error_reporting和display_errors是两个非常重要的参数,我们在学习调试过程中是少不了它们的,开启与关闭这两个错误日志非常的简单只要在php.ini简单处理即可,下文会有介绍.
我们知道产品的生产环境肯定是不给予显示错误的,于是,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就行了.
总结下,在生产环境中不现实错误信息还能记录错误日志,代码如下:
- /**
- * 记录生产环境错误日志
- *
- * @link
- */
- 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');
Tags: PHP错误日志 error_reporting
相关文章
- ·PHP error_reporting(E_ALL ^ E_NOTICE)错误报告详细说明(2014-08-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)