暂无描述

RequestLog.php 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  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(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
  13. * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  14. */
  15. public function handle(Request $request, Closure $next)
  16. {
  17. try {
  18. /** @var Request $request */
  19. if (isset($_SERVER['HTTP_REMOTEIP'])) {
  20. $ips = [$_SERVER['HTTP_REMOTEIP']];
  21. } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  22. $ips = [$_SERVER['HTTP_X_FORWARDED_FOR']];
  23. } else {
  24. $ips = $request->getClientIps();
  25. }
  26. $url = $request->url();
  27. $method = $request->method();
  28. $queryString = $request->getQueryString();
  29. $header = $request->header();
  30. $messageArr[] = implode(',', $ips) . ' ' . $method . ' ' . $url . ( empty($queryString) ? '' : '?' . urldecode($queryString));
  31. $messageArr[] = $request->getContent();
  32. $message = implode("\r\n", $messageArr);
  33. $header['session'] = session()->all();
  34. Log::info($message, $header);
  35. } catch (\Exception $exc) {
  36. // 异常什么也不做
  37. }
  38. return $next($request);
  39. }
  40. }