ExceptionHandler.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: 中闽 < 1464674022@qq.com >
  5. * Date: 2019/12/5
  6. * Time: 17:44
  7. */
  8. namespace app\api\exception;
  9. use Exception;
  10. use think\exception\Handle;
  11. use think\exception\HttpException;
  12. use think\Log;
  13. use think\Request;
  14. /**
  15. * api接口的通用异常处理handle类
  16. * Created by PhpStorm.
  17. * User: 中闽 < 1464674022@qq.com >
  18. * Date: 2020/5/11
  19. * Time: 19:48
  20. */
  21. class ExceptionHandler extends Handle
  22. {
  23. public function render(Exception $e)
  24. {
  25. // 重写render方法
  26. if (\think\App::$debug) {
  27. return parent::render($e);
  28. } else {
  29. if ($e instanceof HttpException) {
  30. if ($e->getStatusCode() == 404) {
  31. return json(["code" => 0, "msg" => "404 not found", "time" => time()]);
  32. }
  33. Log::error($e->getStatusCode() . " error, " . $e->getMessage());
  34. Log::error('请求数据 ' . var_export(Request::instance()->param(), true));
  35. // Log::error($e->getTraceAsString());//不记录HTTP异常(避免受一些攻击的影响写入大量日志)
  36. } else {
  37. Log::error("未知错误 " . $e->getMessage());
  38. Log::error("请求数据 " . var_export(Request::instance()->param(), true));
  39. Log::error($e->getTraceAsString());
  40. return json(["code" => 0, "msg" => "未知错误", "time" => time()]);
  41. }
  42. }
  43. }
  44. }