国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP線上錯誤日志控制(error_reporting和display_errors)

2024-05-04 21:47:53
字體:
來源:轉載
供稿:網友

在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框架就是這樣,代碼如下:

  1. if (defined('ENVIRONMENT')) 
  2.  switch (ENVIRONMENT) 
  3.  { 
  4.   case 'development'
  5.    error_reporting(E_ALL); 
  6.   break
  7.  
  8.   case 'testing'
  9.   case 'production'
  10.    error_reporting(0); 
  11.   break
  12.  
  13.   default
  14.    exit('The application environment is not set correctly.'); 
  15.  } 

線上的錯誤信息肯定是要記錄的,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就行了.

總結下,在生產環境中不現實錯誤信息還能記錄錯誤日志,代碼如下:

  1. /** 
  2.  * 記錄生產環境錯誤日志 
  3.  *  
  4.  * @link 
  5.  */ 
  6. error_reporting(E_ALL); 
  7. ini_set('display_errors',0); 
  8. ini_set('log_errors',1);  
  9. ini_set('error_log','E:/'.date('Y-m-d').'_phpddt.com.txt'); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北海市| 阳城县| 台东县| 宣威市| 沙湾县| 汝阳县| 陵水| 喀喇| 饶河县| 鹤岗市| 绥滨县| 崇文区| 太谷县| 岗巴县| 申扎县| 大英县| 磐安县| 陵水| 凌海市| 东城区| 余江县| 普兰县| 阿拉善左旗| 高邑县| 铁岭市| 青岛市| 冷水江市| 新宾| 惠东县| 融水| 隆德县| 灵石县| 山阳县| 梓潼县| 高州市| 泰和县| 木兰县| 尉氏县| 田东县| 格尔木市| 西吉县|