RequestLog.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. elseif (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. if($request->path() != 'api/reportCount'){
  32. Log::channel('request')->info('request', ['param'=>json_encode($params),'ip' => $ip,'uri'=>$request->path()]);
  33. }
  34. return $next($request);
  35. }
  36. }