Request ID for Stack
Middleware for adding a request ID to your Symfony requests., (*1)
, (*2)
Installation
First, add this project to your project's composer.json, (*3)
$ composer require darsyn/stack-request-id ^1.0
Setting up
Update your app.php to include the middleware:, (*4)
Before:, (*5)
use Symfony\Component\HttpFoundation\Request;
$kernel = new AppKernel($env, $debug);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
After:, (*6)
use Darsyn\Stack\RequestId\Injector;
use Darsyn\Stack\RequestId\UuidGenerator;
use Symfony\Component\HttpFoundation\Request;
$kernel = new AppKernel($env, $debug);
// Stack it! Node name is optional.
$generator = new UuidGenerator($nodeName);
$stack = new RequestId($kernel, $generator);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $stack->handle($request);
$response->send();
$kernel->terminate($request, $response);
Adding the RequestId to your Monolog logs
If you use Symfony's MonologBundle you can add the request ID to your Monolog logs by adding the following service
definition to your services.yml file:, (*7)
services:
darsyn.stack.request_id.monolog_processor:
class: Darsyn\Stack\RequestId\Monolog\Processor
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 255 }
- { name: monolog.processor }
The default is X-Request-Id., (*8)
$stack = new RequestId($kernel, $generator, 'Request-Id');
$stack = new RequestId($kernel, $generator, null, false);