A PSR-3 compliant logger decorator which allows context metadata to be built up.
$ composer require tomphp/context-logger
<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use TomPHP\ContextLogger;
$monolog = new Logger('name');
$monolog->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
$log = new ContextLogger($monolog);
$log->addContext('correlation_id', uniqid());
$log->error('There was an error');
An original context can be set by providing an array as the second argument to the constructor:
$log = new ContextLogger($monolog, ['correlation_id' => uniqid()]);
The context can be added to or modified by the
addContext(string $name, $value)
method.
The context can also be added to/modified by providing an array to the
$context
parameter of any of the PSR-3 LoggerInterface
methods.
You can remove a item from the context by using the removeContext(string $name)
method.