Created
January 12, 2021 09:03
-
-
Save gent-fella-health/851580b7f2af6b60cf8e50e5e1507cff to your computer and use it in GitHub Desktop.
Logger Middleware Laravel
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Infrastructure\Http\Middlewares; | |
use Closure; | |
use DB; | |
use Illuminate\Http\Request; | |
use Log; | |
class Logger | |
{ | |
/** | |
* Handle an incoming request. | |
* | |
* @param \Illuminate\Http\Request $request | |
* @param \Closure $next | |
* @param boolean $dump | |
* | |
* @return mixed | |
*/ | |
public function handle(Request $request, Closure $next, $dump = false) | |
{ | |
DB::enableQueryLog(); | |
$startTime = microtime(true); | |
$response = $next($request); | |
$queries = DB::getQueryLog(); | |
$countQueries = count($queries); | |
$endTime = microtime(true); | |
$responseTime = $endTime - $startTime; | |
$requestUrl = $request->url(); | |
$requestMethod = $request->method(); | |
$logText = "Method: ". $requestMethod. ' - URL: '. $requestUrl. " - Total Queries Executed: $countQueries - Response Time: $responseTime"; | |
if ($countQueries) { | |
if (app()->environment('production')) { | |
Log::channel('slack')->info([$logText, $queries]); | |
} else { | |
($dump) ? dump([$logText, $queries]) : Log::info([$logText, $queries]); | |
} | |
} | |
return $response; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment