Як визначити користувацький форматувальник логування
Дата оновлення перекладу 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 до заголовків