RequestLog.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. $uri = $request->path();
  33. Log::channel('request')->info('request', ['param'=>json_encode($params),'ip' => $ip,'uri'=>$uri]);
  34. $map = config("routemap.map");
  35. if($uri == 'api/login'){
  36. $content = $map[$uri];
  37. $account = '';
  38. if(! empty($params['account'])) $account = $params['account'];
  39. SystemRecord::insert([
  40. 'account' => $account,
  41. 'crt_time' => time(),
  42. 'ip' => $ip,
  43. 'content' => $content
  44. ]);
  45. }
  46. return $next($request);
  47. }
  48. }