Як визначити користувацький форматувальник логування

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