Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
WIKIPEDIA
/
imaliapi
/
app
/
Http
/
Middleware
:
Logger.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Middleware; use App\Classes\SendResponse; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Route; class Logger { /** * 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 $request, Closure $next) { $startTime = microtime(true); $url = $request->fullUrl(); if (str_contains($url, 'login')) { $request->headers->set('Content-Type', 'application/x-www-form-urlencoded'); } // $wallet_name = 'mpesa'; // if ($request->mobile_wallets_id == '21') { // $wallet_name = 'mpesa'; // } else if ($request->mobile_wallets_id == '22') { // $wallet_name = 'emola'; // } else if ($request->mobile_wallets_id == '23') { // $wallet_name = 'mkesh'; // } // if (str_contains($url, 'check-mpesa-withdrawall-transaction')) { // // $req = Request::create('check/{wallet_name}/b2c-transaction', 'GET', ['wallet_name' => $wallet_name]); // return redirect()->route('check', ['wallet_name' => $wallet_name]); // // return Route::dispatch($req); // } Log::info('Requisição recebida', [ 'url' => $request->fullUrl(), 'método' => $request->method(), 'dados' => $request->all(), 'IP' => $request->ip(), ]); try { //code... $response = $next($request); // Log de saída $endTime = microtime(true); $executionTime = $endTime - $startTime; Log::info('Resposta enviada', [ 'status' => $response->status(), 'tempo_execução' => number_format($executionTime, 3) . ' segundos', 'resposta' => $response->getContent(), ]); return $response; } catch (\Exception $e) { // Se ocorrer uma exceção, logar apenas a linha do erro Log::error('Erro na aplicação', [ 'mensagem' => $e->getMessage(), 'arquivo' => $e->getFile(), 'linha' => $e->getLine(), // Logar somente a linha do erro ]); // Retornar uma resposta de erro return response()->json(['error' => 'Ocorreu um erro interno no servidor.'], 500); } } }