Як визначити користувацький форматувальник логування
Дата оновлення перекладу 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.logly
: форматує інформацію про запис у JSON у форматі, сумісному з Logglymonolog.formatter.logstash
: серіалізує запис у формат подій Logstashmonolog.formatter.normalizer
: нормалізує запис для видалення об'єктів/джерел, щоб полегшити скидання до різних цілейmonolog.formatter.scalar
: форматує запис в асоціативний масив скалярних (+ null) значень (об'єкти і масиви будуть закодовані в JSON)monolog.formatter.wildfire
: серіалізує запис відповідно до вимог Wildfire до заголовків