Skip to content

Instantly share code, notes, and snippets.

@jwalton512
Created November 20, 2016 13:31
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save jwalton512/cd590bfdcf26573bcb4ab0329bc1a774 to your computer and use it in GitHub Desktop.
Request logging middleware
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Log;
class LogRequest
{
protected $dontLog = ['password', 'password_confirmation'];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
public function terminate($request, $response)
{
Log::info('app.requests', $this->getLogDetail($request, $response));
}
private function getLogDetail($request, $response)
{
return [
'ip' => $request->ip(),
'url' => $request->url(),
'method' => $request->method(),
'data' => $this->getDataFromRequest($request),
'response_status' => $response->getStatusCode(),
];
}
private function getDataFromRequest($request)
{
$data = $request->all();
collect($this->dontLog)->each(function ($field) use (&$data) {
if (array_has($data, $field)) {
array_set($data, $field, '***');
}
});
return $data;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment