Http.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace app\common\exception;
  3. use Exception;
  4. use http\Header;
  5. use think\exception\Handle;
  6. use think\exception\HttpException;
  7. use think\Log;
  8. use think\Request;
  9. class Http extends Handle
  10. {
  11. public function render(Exception $e)
  12. {
  13. // // 参数验证错误
  14. // if ($e instanceof ValidateException) {
  15. // return json($e->getError(), 422);
  16. // }
  17. //
  18. // // 请求异常
  19. // if ($e instanceof HttpException && request()->isAjax()) {
  20. // return response($e->getMessage(), $e->getStatusCode());
  21. // }
  22. $request = Request::instance();
  23. $traces = [
  24. 'file' => $e->getFile(),
  25. 'line' => $e->getLine(),
  26. 'code' => $this->getCode($e),
  27. 'message' => $this->getMessage($e),
  28. 'source' => $this->getSourceCode($e),
  29. 'method' => $request->method(),
  30. 'param' => $request->param(),
  31. ];
  32. // Log::record(get_class($e), 'error');
  33. Log::record($traces, 'error');
  34. $template = $request->method() .$traces['message']. "\n" . $e->getMessage() . "\n" .
  35. $e->getFile() . ' ' . $e->getLine() . "\n" . $request->url() . "\n" . $request->ip() . "\n" .
  36. json_encode($request->param());
  37. // 请求异常
  38. if ($e instanceof HttpException) {
  39. if(APP_STATUS == 'stable' && $request->isGet() && ($request->module() == 'home' || $request->module() == 'api')){
  40. // Log::record($traces, 'error');
  41. log_message('Response:' . $template, 'log', LOG_PATH . 'exception/');
  42. }else{
  43. // $ddurl = WARNING_DINGDING_URL;
  44. // $result = curlDD($template, $ddurl, true);
  45. // Log::record($template.'======='.$ddurl.'======='.$result, 'error');
  46. }
  47. }else{
  48. // $ddurl = WARNING_DINGDING_URL;
  49. // $result = curlDD($template, $ddurl, true);
  50. // Log::record($template.'======='.$ddurl.'======='.$result, 'error');
  51. }
  52. //TODO::开发者对异常的操作
  53. //可以在此交由系统处理
  54. return parent::render($e);
  55. }
  56. }