slog - стандартная библиотека (Go 1.21): структурированные логи, уровни, группы, заменяемый handler (JSON, text). zap - быстрый, структурированный, популярен в проектах. zerolog - минимальный аллокации, цепочка вызовов. Выбор: slog для нового кода (стандарт, достаточная производительность), zap/zerolog при жестких требованиях к скорости и объему логов.
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}))
logger.Info("msg", "user_id", 123, "path", r.URL.Path)