slog (Go 1.21) - структурированные логи: уровни (Debug, Info, Warn, Error), группы (Logger.WithGroup), заменяемый handler (JSON, text). Logger создается с New(slog.NewJSONHandler(...)). Контекст передают через Logger.With. В production обычно JSON handler для парсинга в системах сбора логов.
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
logger.Info("msg", "user_id", 123, "path", r.URL.Path)
logger.With("request_id", id).Info("request")