Home  >  Article  >  Backend Development  >  PHP logs errors by daily date

PHP logs errors by daily date

WBOY
WBOYOriginal
2016-07-25 09:02:241352browse
File 1: [error.class.php] Rewrite error processing and perform file-type log output. There will be two times, the first is Greenwich time, the second is Beijing time, followed by error information, when used Just include this file. Of course, you can also modify the file format according to your own needs. For example, you can add a mail function later to send it to the email...
File 2: [test.php] test file, which contains error statements for testing.
  1. function exceptionHandler(){
  2. error_reporting(E_ALL ^ ​​E_NOTICE);
  3. date_default_timezone_set('Etc/GMT-8'); //Set the time zone
  4. ini_set('display_errors',0); / /Record errors to the log
  5. ini_set('error_log','D:\'.date('Y-m-d').'_weblog.txt');
  6. ini_set('log_errors',1); //Enable error log Record
  7. ini_set('ignore_repeated_errors',1); //Do not repeatedly record error messages that appear on the same line of code in the same file.
  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 = 'fatal runtime Error (E_ERROR)';
  14. break;
  15. case 2:
  16. $user_defined_errType = 'Non-fatal runtime error (E_WARNING)';
  17. break;
  18. case 4:
  19. $user_defined_errType = 'Compile-time syntax parsing error (E_PARSE)' ;
  20. break;
  21. case 8:
  22. $user_defined_errType = 'Runtime prompt (E_NOTICE)';
  23. break;
  24. case 16:
  25. $user_defined_errType = 'PHP internal error (E_CORE_ERROR)';
  26. break;
  27. case 32:
  28. $ user_defined_errType = 'PHP internal warning (E_CORE_WARNING)';
  29. break;
  30. case 64:
  31. $user_defined_errType = 'Zend script engine internal error (E_COMPILE_ERROR)';
  32. break;
  33. case 128:
  34. $user_defined_errType = 'Zend script engine internal warning (E_COMPILE_WARNING)';
  35. break;
  36. case 256:
  37. $user_defined_errType = 'User-defined error (E_USER_ERROR)';
  38. break;
  39. case 512:
  40. $user_defined_errType = 'User-defined warning (E_USER_WARNING)';
  41. break;
  42. case 1024:
  43. $user_defined_errType = 'User-defined prompt (E_USER_NOTICE)';
  44. break;
  45. case 2048:
  46. $user_defined_errType = 'Code prompt (E_STRICT)';
  47. break;
  48. case 4096:
  49. $user_defined_errType = 'Yes Caught fatal error (E_RECOVERABLE_ERROR)';
  50. break;
  51. case 8191:
  52. $user_defined_errType = 'All error warnings (E_ALL)';
  53. break;
  54. default:
  55. $user_defined_errType = 'Unknown type';
  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. ?>
Copy code
  1. //File 2: [test.php]
  2. include('error.class.php');
  3. echo $_COOKIE[' aaaaadfa']; //If this cookie does not exist, an error will be generated and is used for testing
  4. echo $_SESSION['aaaaadfa']; //If this session does not exist, an error will be generated and is used for testing
  5. ? >
Copy code


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn