$processors
$processors : callable[]
Buffers all records until a certain level is reached
The advantage of this approach is that you don't get any clutter in your log files. Only requests which actually trigger an error (or whatever your actionLevel is) will be in the logs, but they will contain all records, not only those above the level threshold.
You can then have a passthruLevel as well which means that at the end of the request, even if it did not get activated, it will still send through log records of e.g. at least a warning level.
You can find the various activation strategies in the Monolog\Handler\FingersCrossed\ namespace.
$processors : callable[]
$handler : callable|\Monolog\Handler\HandlerInterface
$activationStrategy : \Monolog\Handler\FingersCrossed\ActivationStrategyInterface
$buffering : bool
$bufferSize : int
$buffer : \Monolog\Handler\Record[]
$stopBuffering : bool
$passthruLevel : ?int
$bubble : bool
__construct(callable|\Monolog\Handler\HandlerInterface $handler, int|string|\Monolog\Handler\FingersCrossed\ActivationStrategyInterface $activationStrategy = null, int $bufferSize, bool $bubble = true, bool $stopBuffering = true, int|string $passthruLevel = null) : mixed
callable|\Monolog\Handler\HandlerInterface | $handler | Handler or factory callable($record|null, $fingersCrossedHandler). |
int|string|\Monolog\Handler\FingersCrossed\ActivationStrategyInterface | $activationStrategy | Strategy which determines when this handler takes action, or a level name/value at which the handler is activated |
int | $bufferSize | How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. |
bool | $bubble | Whether the messages that are handled can bubble up the stack or not |
bool | $stopBuffering | Whether the handler should stop buffering after being triggered (default true) |
int|string | $passthruLevel | Minimum level to always flush to handler on close, even if strategy not triggered |