Логи из Go отправляют в Elasticsearch (напрямую или через Logstash/Filebeat). В Go: структурированные логи (slog JSON), вывод в stdout; коллектор (Fluentd, Filebeat) забирает и отправляет в ELK. Альтернативы: Loki (как Prometheus для логов), облачные сервисы (Datadog, CloudWatch). Важно единый формат (JSON) и поля trace_id, level, message.
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
logger.Info("request", "path", r.URL.Path, "trace_id", traceID)