Какой стек технологий используешь для логирования

«Какой стек технологий используешь для логирования» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для логирования в Go обычно использую:

  1. Стандартный log - для простых случаев:
import "log"
log.Println("Simple log message")
  1. Zerolog - для структурированного логирования (JSON):
import "github.com/rs/zerolog/log"
log.Info().Str("key", "value").Msg("Structured log")
  1. Zap от Uber - когда нужна высокая производительность:
import "go.uber.org/zap"
logger, _ := zap.NewProduction()
logger.Info("Fast logging", zap.String("key", "value"))

Дополнительно:

  • Lumberjack для ротации логов
  • Sentry для мониторинга ошибок
  • ELK/Grafana Loki для агрегации и анализа логов

Выбор зависит от требований проекта: стандартный log для простых задач, Zerolog/Zap для production.