Как определить пользовательский форматировщик логирования
Дата обновления перевода 2023-09-19
Как определить пользовательский форматировщик логирования
Каждый обработчик логирования использует Formatter
, чтобы форматировать
запись перед тем, как её логировать. Все обработчики Monolog по умолчанию
используют экземпляр Monolog\Formatter\LineFormatter
,, но вы можете с
лёгкостью заменить его. Ваш форматировщик должен релизовывать Monolog\Formatter\FormatterInterface
.
Например, чтобыиспользовать встроенный JsonFormatter
, зарегистрируйте его
как сервис, а потом сконфигурируйте ваш обработчик так, чтобы он его использовал:
1 2 3 4 5 6 7
# config/packages/prod/monolog.yaml (and/or config/packages/dev/monolog.yaml)
monolog:
handlers:
file:
type: stream
level: debug
formatter: 'monolog.formatter.json'
В Monolog имеется множество встроенных форматировщиков. Многие из них объявлены как сервисы и могут быть использованы в опции ``formatter'':
monolog.formatter.chrome_php
: форматирует запись в соответствии с форматом массива ChromePHPmonolog.formatter.gelf_message
: сериализует формат в формат GELFmonolog.formatter.html
: форматирует запись в HTML-таблицуmonolog.formatter.json
: сериализует запись в объект JSONmonolog.formatter.line
: форматирует запись в одну строкуmonolog.formatter.loggly
: форматирует информацию о записи в JSON в формате, совместимом с Logglymonolog.formatter.logstash
: сериализует запись в формат событий Logstashmonolog.formatter.normalizer
: нормализует запись для удаления объектов/ресурсов, чтобы её было проще скидывать на различные целиmonolog.formatter.scalar
: форматирует запись в ассоциативный массив скалярных (+ null) значений (объекты и массивы будут закодированы в JSON)monolog.formatter.wildfire
: сериализует запись в соответствии с требованиями Wildfire к заголовкам