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