>  기사  >  백엔드 개발  >  PHP는 날짜별로 오류를 기록합니다.

PHP는 날짜별로 오류를 기록합니다.

WBOY
WBOY원래의
2016-07-25 09:02:241352검색
文件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. ?>
复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.