Мне нужно добавить информацию об отслеживании для всех журналов.
Например. вошедший в систему пользователь и параметры маршрута (идентификатор объекта)
Сейчас у меня есть этот код:
use Monolog\Processor\ProcessorInterface;
class RequestProcessor impelements ProcessorInterface {
public function __construct(
private RequestStack $requestStack,
) {
}
public function __invoke(LogRecord $record): LogRecord {
$request = $this->requestStrack->getCurrentRequest();
$record = $record->with(
context: [
'route' => $request->attributes->get('_route'),
],
);
return $record;
}
}
Проблема в том, что некоторые журналы (например, об устаревании) регистрируются до события `Kernel::request`. Это означает, что в strack нет «текущего запроса».
То же самое с информацией о вошедшем в систему пользователе.
---
Пытался добавить массовый обработчик, но, похоже, ни один процессор не выполнялся после сброса, поскольку процессоры применяются перед передачей журнала обработчику.
monolog:
handlers:
info_buffer:
type: buffer
handler: info_only
info_only:
type: filter
handler: info_log
channels: ['!database', '!elasticsearch_client', '!security']
accepted_levels:
- info
info_log:
type: stream
level: debug
bubble: false
channels: ['!database']
path: "%kernel.logs_dir%/info.jsonl.log"
formatter: app.log.formatter.json
Подробнее здесь: https://stackoverflow.com/questions/798 ... o-all-logs