package infra import ( "io" "log/slog" ) // Logger wrappea slog.Logger con config del registry (nivel, output, formato, campos contextuales). // Se crea con LoggerNew y se clona inmutablemente con LoggerWith anadiendo campos. type Logger struct { Level LogLevel // nivel minimo filtrado Output io.Writer // destino de los logs (stdout, stderr, file, buffer) Format string // "json" | "text" Fields map[string]any // campos contextuales adjuntos al logger inner *slog.Logger // handler real de slog }