RequestLog.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Model\SystemRecord;
  4. use Closure;
  5. use Illuminate\Support\Facades\Log;
  6. class RequestLog
  7. {
  8. /**
  9. * Handle an incoming request.
  10. *
  11. * @param \Illuminate\Http\Request $request
  12. * @param \Closure $next
  13. * @return mixed
  14. */
  15. public function handle($request, Closure $next)
  16. {
  17. if (getenv('HTTP_CLIENT_IP')) {
  18. $ip = getenv('HTTP_CLIENT_IP');
  19. }
  20. elseif (getenv('HTTP_X_REAL_IP')) {
  21. $ip = getenv('HTTP_X_REAL_IP');
  22. } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
  23. $ip = getenv('HTTP_X_FORWARDED_FOR');
  24. $ips = explode(',', $ip);
  25. $ip = $ips[0];
  26. } elseif (getenv('REMOTE_ADDR')) {
  27. $ip = getenv('REMOTE_ADDR');
  28. } else {
  29. $ip = '0.0.0.0';
  30. }
  31. $params = $request->all();
  32. Log::channel('request')->info('request', ['param'=>json_encode($params),'ip' => $ip,'uri'=>$request->path()]);
  33. $map = config("routemap.map");
  34. if(isset($map[$request->path()])){
  35. $content = $map[$request->path()];
  36. $account = '';
  37. if(! empty($request->userData)){
  38. $user = $request->userData->toArray();
  39. $account = $user['account'];
  40. }elseif(! empty($params['account'])){
  41. $account = $params['account'];
  42. }
  43. SystemRecord::insert([
  44. 'account' => $account,
  45. 'crt_time' => time(),
  46. 'ip' => $ip,
  47. 'content' => $content
  48. ]);
  49. }
  50. return $next($request);
  51. }
  52. }