Обробники

Дата оновлення перекладу 2024-05-29

Обробники

ElasticsearchLogstashHandler

Цей обробник працює напряму з HTTP інтерфейсом Elasticsearch. Це означає, що він уповільнить ваш додаток, якщо Elasticsearch знадобиться час для відповіді. Навіть якщо всі HTTP-виклики будуть зроблені асинхронно.

Щоб використати його, оголосіть його сервісом:

1
2
3
4
5
6
7
8
9
10
11
12
13
# config/services.yaml
services:
    Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler: ~

    # опціонально, сконфігуруйте обробник, використовуючи аргументи конструктора (показані значення є значеннями за замовчуванням)
    Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler:
        arguments:
            $endpoint: "http://127.0.0.1:9200"
            $index: "monolog"
            $client: null
            $level: !php/enum Monolog\Level::Debug
            $bubble: true
            $elasticsearchVersion: '1.0.0'

Потім, пошліться на нього у конфігурації Monolog:

У середовищі розробки добре зберігати конфігурацію за замовчуванням: для для кожного журналу буде зроблено HTTP-запит, щоб відправити журнал до Elasticsearch:

1
2
3
4
5
6
# config/packages/prod/monolog.yaml
monolog:
    handlers:
        es:
            type: service
            id: Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler

У середовищі виробництва настійно рекомендується обгорнути цей обробник в обробник з можливостями буферизації (наприклад, FingersCrossedHandler або BufferHandler), щоб викликати Elasticsearch лише один раз при масовому пуші. Для ще кращої продуктивності та відмовостійкості рекомендується використовувати правильний ELK-стек.

1
2
3
4
5
6
7
8
9
10
# config/packages/prod/monolog.yaml
monolog:
    handlers:
        main:
            type: fingers_crossed
            handler: es

        es:
            type: service
            id: Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler