Монолог Symfony добавляет дополнительную информацию во все журналыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Монолог Symfony добавляет дополнительную информацию во все журналы

Сообщение Anonymous »

Мне нужно добавить информацию об отслеживании для всех журналов.
Например. вошедший в систему пользователь и параметры маршрута (идентификатор объекта)
Сейчас у меня есть этот код:
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»