国产探花免费观看_亚洲丰满少妇自慰呻吟_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'); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰顺县| 荥经县| 深圳市| 宜宾县| 汝城县| 栾城县| 县级市| 潢川县| 旬邑县| 黑龙江省| 泾源县| 惠来县| 岳阳市| 郁南县| 望奎县| 鸡西市| 剑阁县| 长宁区| 巧家县| 南丰县| 堆龙德庆县| 丹巴县| 海城市| 星子县| 黄冈市| 资中县| 凤翔县| 石家庄市| 龙里县| 视频| 拉萨市| 台州市| 抚远县| 阿拉善右旗| 瑞昌市| 合山市| 汨罗市| 夏邑县| 宁都县| 乾安县| 福州市|