Обработчики
Дата обновления перевода 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