RequestLog.php 1006 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Support\Facades\Log;
  5. class RequestLog
  6. {
  7. /**
  8. * Handle an incoming request.
  9. *
  10. * @param \Illuminate\Http\Request $request
  11. * @param \Closure $next
  12. * @return mixed
  13. */
  14. public function handle($request, Closure $next)
  15. {
  16. if (getenv('HTTP_CLIENT_IP')) {
  17. $ip = getenv('HTTP_CLIENT_IP');
  18. }
  19. if (getenv('HTTP_X_REAL_IP')) {
  20. $ip = getenv('HTTP_X_REAL_IP');
  21. } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
  22. $ip = getenv('HTTP_X_FORWARDED_FOR');
  23. $ips = explode(',', $ip);
  24. $ip = $ips[0];
  25. } elseif (getenv('REMOTE_ADDR')) {
  26. $ip = getenv('REMOTE_ADDR');
  27. } else {
  28. $ip = '0.0.0.0';
  29. }
  30. $params = $request->all();
  31. Log::channel('request')->info('request', ['param'=>json_encode($params),'ip' => $ip,'uri'=>$request->path()]);
  32. return $next($request);
  33. }
  34. }