From d764ff6718e5e789c58b7d45c07362267d06352f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Fri, 30 Apr 2021 17:41:02 -0400 Subject: [PATCH] Configurado el logger --- .../Http/Controllers/UsuariosController.php | 1 + .../Middleware/LogEndpointHitMiddleware.php | 25 +++++++++ backend/bootstrap/app.php | 11 ++-- backend/config/logging.php | 51 +++++++++++++++++++ backend/routes/web.php | 2 +- 5 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 backend/app/Http/Middleware/LogEndpointHitMiddleware.php create mode 100644 backend/config/logging.php diff --git a/backend/app/Http/Controllers/UsuariosController.php b/backend/app/Http/Controllers/UsuariosController.php index 0002e23..87c85e1 100644 --- a/backend/app/Http/Controllers/UsuariosController.php +++ b/backend/app/Http/Controllers/UsuariosController.php @@ -8,6 +8,7 @@ use App\Services\Auth0Service; use App\Services\PaginatorService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use Illuminate\Validation\Rule; use Illuminate\Validation\ValidationException; use Ramsey\Uuid\Uuid; diff --git a/backend/app/Http/Middleware/LogEndpointHitMiddleware.php b/backend/app/Http/Middleware/LogEndpointHitMiddleware.php new file mode 100644 index 0000000..47eac84 --- /dev/null +++ b/backend/app/Http/Middleware/LogEndpointHitMiddleware.php @@ -0,0 +1,25 @@ +user ? $request->user->id : null; + $method = $request->getMethod(); + $path = $request->getPathInfo(); + + Log::debug('User ' . $userId . ' hitting ' . $method . ' ' . $path . ' endpoint', [ + 'user' => $userId, + 'method' => $method, + 'path' => $path, + 'input' => array_filter($request->input(), function ($key) { + return $key !== 'user'; + }, ARRAY_FILTER_USE_KEY) + ]); + + return $next($request); + } +} diff --git a/backend/bootstrap/app.php b/backend/bootstrap/app.php index 63c8a0b..eacf562 100644 --- a/backend/bootstrap/app.php +++ b/backend/bootstrap/app.php @@ -1,6 +1,6 @@ singleton( */ $app->configure('app'); +$app->configure('logging'); /* |-------------------------------------------------------------------------- @@ -72,12 +73,10 @@ $app->configure('app'); | */ -// $app->middleware([ -// App\Http\Middleware\ExampleMiddleware::class -// ]); $app->routeMiddleware([ 'auth' => App\Http\Middleware\Auth0Middleware::class, + 'log_endpoint' => App\Http\Middleware\LogEndpointHitMiddleware::class ]); /* @@ -91,7 +90,7 @@ $app->routeMiddleware([ | */ - $app->register(App\Providers\AppServiceProvider::class); +$app->register(App\Providers\AppServiceProvider::class); // $app->register(App\Providers\AuthServiceProvider::class); // $app->register(App\Providers\EventServiceProvider::class); $app->register(Illuminate\Redis\RedisServiceProvider::class); @@ -110,7 +109,7 @@ $app->register(Illuminate\Redis\RedisServiceProvider::class); $app->router->group([ 'namespace' => 'App\Http\Controllers', ], function ($router) { - require __DIR__.'/../routes/web.php'; + require __DIR__ . '/../routes/web.php'; }); return $app; diff --git a/backend/config/logging.php b/backend/config/logging.php new file mode 100644 index 0000000..0f2e037 --- /dev/null +++ b/backend/config/logging.php @@ -0,0 +1,51 @@ + env('LOG_CHANNEL', 'stack'), + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['daily', 'stderr'], + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/lumen_log.html'), + 'formatter' => Monolog\Formatter\HtmlFormatter::class, + 'level' => 'debug', + 'days' => 14, + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'handler' => StreamHandler::class, + 'formatter' => Monolog\Formatter\LineFormatter::class, + 'level' => 'debug', + 'with' => [ + 'stream' => 'php://stderr', + ], + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + ], + +]; diff --git a/backend/routes/web.php b/backend/routes/web.php index a2be05f..b0e2174 100644 --- a/backend/routes/web.php +++ b/backend/routes/web.php @@ -8,7 +8,7 @@ $router->get('/', function () use ($router) { return 'Public View'; }); -$router->group(['prefix' => 'api/v1', 'middleware' => 'auth'], function () use ($router) { +$router->group(['prefix' => 'api/v1', 'middleware' => ['auth', 'log_endpoint']], function () use ($router) { $router->group(['prefix' => '/users'], function () use ($router) { $router->get('/', ['as' => 'users.all', 'uses' => 'UsuariosController@all']); $router->get('/{id}', ['as' => 'users.get', 'uses' => 'UsuariosController@get']);