Обработчики

Дата обновления перевода 2023-01-16

Обработчики

ElasticsearchLogstashHandler

Этот обработчик работает напрямую с HTTP интерфейсом Elasticsearch. Это означает, что он замедлит ваше приложение, если Elasticsearch понадобится время для ответа. Даже если все HTTP-вызовы будут произведены асинхронно.

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

В окружении производства очень рекомендуется оборачивать этот обработчик в обработчик с возможностью буферизации (вроде FingersCrossedHandler или BufferHandler) для того, чтобы вызывать Elasticsearch только один раз при массовой передаче. Для лучше производительности и толерантности к ошибкам, рекомендуется правильный стек ELK.

Чтобы использовать его, объявите его сервисом:

  • YAML
  • XML
  • PHP
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/const Monolog\Logger::DEBUG
            $bubble: true
            $elasticsearchVersion: '1.0.0'

Затем сошлитесь на него в конфигурации Monolog:

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