Skip to content

Instantly share code, notes, and snippets.

@gentritabazi
Created January 12, 2021 09:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gentritabazi/851580b7f2af6b60cf8e50e5e1507cff to your computer and use it in GitHub Desktop.
Save gentritabazi/851580b7f2af6b60cf8e50e5e1507cff to your computer and use it in GitHub Desktop.
Logger Middleware Laravel
<?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