Как определить пользовательский форматировщик логирования
Дата обновления перевода 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 к заголовкам