PHP按每天日期記錄錯誤記錄檔

來源:互聯網
上載者:User
檔案1:【error.class.php】重寫錯誤處理,進行檔案型的日誌輸出,會有兩個時間,第一個是格林尼治時間,第二個是北京時間,後面是錯誤資訊,使用時候只需要包含此檔案就可以了。 當然,檔案格式你也可以根據自己的需要進行相應修改,比如在後面可以加一個mail函數發送到郵件...
檔案2:【test.php】測試檔案,裡面有用來測試的錯誤語句。
  1. function exceptionHandler(){
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. date_default_timezone_set('Etc/GMT-8'); //設定時區
  4. ini_set('display_errors',0); //將錯誤記錄到日誌
  5. ini_set('error_log','D:\\'.date('Y-m-d').'_weblog.txt');
  6. ini_set('log_errors',1); //開啟錯誤記錄檔記錄
  7. ini_set('ignore_repeated_errors',1); //不重複記錄出現在同一個檔案中的同一行代碼上的錯誤資訊。
  8. $user_defined_err = error_get_last();
  9. if($user_defined_err['type'] > 0)
  10. {
  11. switch($user_defined_err['type']){
  12. case 1:
  13. $user_defined_errType = '致命的執行階段錯誤(E_ERROR)';
  14. break;
  15. case 2:
  16. $user_defined_errType = '非致命的執行階段錯誤(E_WARNING)';
  17. break;
  18. case 4:
  19. $user_defined_errType = '編譯時間文法解析錯誤(E_PARSE)';
  20. break;
  21. case 8:
  22. $user_defined_errType = '運行時提示(E_NOTICE)';
  23. break;
  24. case 16:
  25. $user_defined_errType = 'PHP內部錯誤(E_CORE_ERROR)';
  26. break;
  27. case 32:
  28. $user_defined_errType = 'PHP內部警告(E_CORE_WARNING)';
  29. break;
  30. case 64:
  31. $user_defined_errType = 'Zend指令碼引擎內部錯誤(E_COMPILE_ERROR)';
  32. break;
  33. case 128:
  34. $user_defined_errType = 'Zend指令碼引擎內部警告(E_COMPILE_WARNING)';
  35. break;
  36. case 256:
  37. $user_defined_errType = '使用者自訂錯誤(E_USER_ERROR)';
  38. break;
  39. case 512:
  40. $user_defined_errType = '使用者自訂警告(E_USER_WARNING)';
  41. break;
  42. case 1024:
  43. $user_defined_errType = '使用者自訂提示(E_USER_NOTICE)';
  44. break;
  45. case 2048:
  46. $user_defined_errType = '代碼提示(E_STRICT)';
  47. break;
  48. case 4096:
  49. $user_defined_errType = '可以捕獲的致命錯誤(E_RECOVERABLE_ERROR)';
  50. break;
  51. case 8191:
  52. $user_defined_errType = '所有錯誤警告(E_ALL)';
  53. break;
  54. default:
  55. $user_defined_errType = '未知類型';
  56. break;
  57. }
  58. $msg = sprintf('%s %s %s %s %s',date("Y-m-d H:i:s"),$user_defined_errType,$user_defined_err['message'],$user_defined_err['file'],$user_defined_err['line']);
  59. error_log($msg,0);
  60. }
  61. }
  62. register_shutdown_function('exceptionHandler');
  63. ?>
複製代碼
  1. //檔案2:【test.php】
  2. include('error.class.php');
  3. echo $_COOKIE['aaaaadfa']; //此cookie不存在就會產生一個錯誤,用來做測試用
  4. echo $_SESSION['aaaaadfa']; //此session不存在就會產生一個錯誤,用來做測試用
  5. ?>
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.