55 lines
1.7 KiB
PHP
55 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use App\Utils\Helps;
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Illuminate\Support\Str;
|
|
|
|
class LogMiddleware
|
|
{
|
|
protected $startTime = 0;
|
|
|
|
/**
|
|
* Handle an incoming request.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
|
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
|
*/
|
|
public function handle($request, Closure $next)
|
|
{
|
|
$traceId = $request->header('X-Trace-Id');
|
|
if (!$traceId) {
|
|
$traceId = Str::uuid()->toString();
|
|
}
|
|
Log::withContext(['tid' => substr($traceId, 0, 8)]);
|
|
|
|
$customer = Auth::guard('customer')->user();
|
|
$seller = Auth::guard('seller')->user();
|
|
$startTime = microtime(true);
|
|
$uri = $request->getRequestUri();
|
|
Log::info($uri . '~~~start', [
|
|
'requestData' => $request->all(),
|
|
'useragent' => $request->userAgent(),
|
|
'clientid' => $request->getClientIp(),
|
|
'customer_id' => $customer ? $customer->id : 0,
|
|
'seller_id' => $seller ? $seller->id : 0,
|
|
]);
|
|
$response = $next($request);
|
|
|
|
$durTime = microtime(true) - $startTime;
|
|
Log::info($uri . '~~~end', [
|
|
'time' => Helps::floatFormat($durTime, 3),
|
|
'responseData' => $response->getContent(),
|
|
'customer_id' => $customer ? $customer->id : 0,
|
|
'seller_id' => $seller ? $seller->id : 0,
|
|
]);
|
|
return $response;
|
|
}
|
|
}
|