ホームページ  >  記事  >  バックエンド開発  >  PHP は毎日の日付ごとにエラーをログに記録します

PHP は毎日の日付ごとにエラーをログに記録します

WBOY
WBOYオリジナル
2016-07-25 09:02:241313ブラウズ
ファイル 1: [error.class.php] エラー処理を書き換えてファイル形式のログ出力を実行します。1 回目はグリニッジ時間、2 回目は北京時間で、使用時にエラー情報が続きます。これを含めるだけです。ファイル。 もちろん、必要に応じてファイル形式を変更することもできます。たとえば、後でメール機能を追加してメールに送信することもできます。
ファイル 2: [test.php] テスト ファイル。テスト用のエラー ステートメントが含まれています。
    functionExceptionHandler(){
  1. error_reporting(E_ALL ^ E_NOTICE);
  2. date_default_timezone_set('Etc/GMT-8') //タイムゾーンを設定します
  3. ini_set('display_errors', 0); / /エラーをログに記録します
  4. ini_set('error_log','D:\'.date('Y-m-d').'_weblog.txt');
  5. ini_set('log_errors',1); /エラー ログの記録を有効にする
  6. ini_set('ignore_repeat_errors',1); //同じファイルの同じコード行に出現するエラー情報を繰り返し記録しないでください。
  7. $user_define_err = error_get_last();
  8. if($user_dependent_err['type'] > 0)
  9. {
  10. switch($user_define_err['type']){
  11. case 1:
  12. $user_define_errType = '致命的なランタイム エラー ( E_ERROR)';
  13. ブレーク;
  14. ケース 2:
  15. $user_dependent_errType = '致命的ではないランタイム エラー (E_WARNING)';
  16. ブレーク;
  17. ケース 4:
  18. $user_dependent_errType = 'コンパイル時構文解析エラー (E_PARSE)' ;
  19. ブレーク;
  20. ケース 8:
  21. $user_define_errType = '実行時プロンプト (E_NOTICE)';
  22. ブレーク;
  23. ケース 16:
  24. $user_dependent_errType = 'PHP 内部エラー (E_CORE_ERROR)';
  25. ブレーク;
  26. ケース 32:
  27. $ user_define_errType = ' PHP 内部警告 (E_CORE_WARNING)';
  28. ブレーク;
  29. case 64:
  30. $user_dependent_errType = 'Zend スクリプト エンジンの内部エラー (E_COMPILE_ERROR)';
  31. ブレーク;
  32. case 128:
  33. $user_dependent_errType = 'Zend スクリプト エンジンの内部警告 (E_COMPILE_WARNING) ';
  34. ブレーク;
  35. ケース 256:
  36. $user_dependent_errType = 'ユーザー定義エラー (E_USER_ERROR)';
  37. ブレーク;
  38. ケース 512:
  39. $user_dependent_errType = 'ユーザー定義警告 (E_USER_WARNING)';
  40. ブレーク; :
  41. $user_define_errType = 'ユーザー定義プロンプト (E_USER_NOTICE)';
  42. ブレーク;
  43. case 2048:
  44. $user_dependent_errType = 'コード プロンプト (E_STRICT)';
  45. ブレーク;
  46. case 4096:
  47. $user_dependent_errType = 'はい、致命的なエラーをキャッチしました(E_RECOVERABLE_ERROR)';
  48. ブレーク;
  49. ケース 8191:
  50. $user_dependent_errType = 'すべてのエラー警告 (E_ALL)';
  51. ブレーク;
  52. デフォルト:
  53. $user_dependent_errType = '不明なタイプ';
  54. ブレーク;
  55. }
  56. $msg = sprintf ('%s %s %s %s %s',date("Y-m-d H:i:s"),$user_defined_errType,$user_dependent_err['message'],$user_dependent_err['file'],$ user_dependent_err['line ']);
  57. error_log($msg,0);
  58. }
  59. }
  60. register_shutdown_function('例外ハンドラー');
  61. ?>
コードをコピー
    //ファイル 2: [test.php]
  1. include('error.class.php');
  2. echo $_COOKIE[' aaaaadfa']; //この Cookie が存在しない場合はエラーが生成され、テストに使用されます
  3. echo $_SESSION['aaaaadfa'] //このセッションが存在しない場合はエラーが生成され、使用されますテスト用
  4. ? >
コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。