01

Qué es y qué problema resuelve

Una plantilla de log conserva propiedades separadas de la frase. Esas propiedades permiten agrupar fallos y reconstruir decisiones.

Registra operación, resultado y correlación; el contenido de una credencial no ayuda a autorizar y no debe aparecer en los registros.

02

Ejemplo paso a paso

Logging estructurado y Serilog · caso de reservasC#

Punto de partida Fragmento con ILogger y HttpContext. No registra la entrada completa, el token ni la excepción en la respuesta.

Antes de ejecutar

Requiere un host ASP.NET Core 10 preparado. builder y app corresponden a WebApplication.CreateBuilder y Build; las variables y tipos auxiliares deben definirse. Registra los servicios usados antes de Build. El ZIP de consola no contiene esta API. logger y http son el logger y HttpContext recibidos en la operación; la forma de consultar propiedades depende del proveedor de logs.

logger.LogInformation(
    "Validación de reserva {Resultado} {TraceId}",
    "rechazada", http.TraceIdentifier);

Cómo funciona

  1. Lee la plantilla del mensaje y los nombres de sus propiedades.
  2. Relaciona el identificador de reserva con el evento que ocurrió.
  3. Busca por esas propiedades en un destino de logs configurado.

Resultado esperado: Resultado y TraceId se almacenan como propiedades consultables.

03

Cuándo usarlo y qué debes evitar

ILogger desacopla el consumidor del destino. Serilog es un proveedor posible para estructuración y sinks; elegirlo requiere configurar transporte, retención y acceso.

Evita concatenaciones costosas y logging indiscriminado del cuerpo. Un identificador puede ser sensible: decide necesidad y política, no solo nivel de severidad.

Ampliación opcional · contexto y variantes del tema

Logs estructurados y observabilidad

Un log estructurado almacena propiedades con nombres estables, en vez de concatenar valores dentro de una frase. Registra operación, resultado, duración y correlación. Evita cuerpos completos, Authorization, cookies, contraseñas y refresh tokens. Incluso identificadores pueden ser datos sensibles: define necesidad, retención y acceso. Serilog es una opción de proveedor; ILogger mantiene el contrato de la aplicación sin obligarla a conocer un destino concreto.

Logs cuentan eventos; métricas resumen frecuencias y latencias; trazas conectan etapas de una solicitud. Una métrica por cada ReservaId genera cardinalidad excesiva. Usa etiquetas acotadas como operación y resultado; guarda identificadores en eventos controlados. Una alerta debe indicar condición, impacto y acción: una suma de errores sin ventana ni responsable no ayuda a operar.

Una plantilla de log, dos propiedadesC#

Punto de partida ILogger pertenece al adaptador o aplicación según la frontera elegida. Para producción evalúa si registrar el identificador es necesario; evita adjuntar el JWT para depurar permisos.

Antes de ejecutar

Fragmento con ILogger inyectado

logger.LogInformation(
    "Cancelación procesada {ReservaId} {Resultado}",
    id, resultado.EsExito ? "aceptada" : "rechazada");

Resultado esperado: El destino recibe ReservaId y Resultado como propiedades consultables.

04 · Práctica guiada · opcional

Practica lo aprendido

Diseña un evento de éxito y uno de rechazo, y revisa datos que expondrían.

  1. 01Prepara el ejemplo con las dependencias indicadas en «Antes de ejecutar».
  2. 02Diseña un evento de éxito y uno de rechazo, y revisa datos que expondrían.
  3. 03Comprueba y registra el resultado: Resultado y TraceId se almacenan como propiedades consultables.
Ver solución orientativa

Incluye resultado y correlación; excluye Authorization, cookies y secretos. Establece retención y responsable.

05

Comprueba lo aprendido

Responde antes de abrir la explicación. Esta comprobación es opcional y no guarda una puntuación.

01¿Más volumen de logs equivale a mejor observabilidad?

No. El diagnóstico necesita señales pertinentes, estructura y límites.

02¿Qué registrarías para investigar este rechazo sin copiar el token del usuario?

Registra operación, resultado y un TraceId que soporte búsqueda. Excluye Authorization, cookies y secretos; acceso y retención del log también necesitan una decisión.

Cómo demostrar el objetivo

Compara tu práctica con estos resultados. Si solo diseñaste una prueba, registra su resultado como esperado, no como observado.

  • El evento permite buscar Resultado y TraceId como propiedades.
  • La revisión excluye Authorization, cookies y secretos y define responsable y retención.

Qué debes recordar

  • Un evento estructurado separa mensaje y propiedades.
  • El contexto debe ayudar a investigar sin revelar secretos.
Tu cuaderno · notas personales

Cuaderno local

Tus notas del contenido

Se guardan únicamente en este dispositivo. Puedes exportarlas cuando quieras.

Guardado local automático
Material de apoyo · descarga, glosario y referencias
Libro de trabajo · Logging estructurado y SerilogLaboratorio C# · núcleo y 15 comprobaciones

Explicaciones, ejemplos y prácticas propios de Academia de Software. Los fragmentos de integración requieren las dependencias indicadas; el ZIP contiene el núcleo de consola. Las lecturas externas se consultan en su sitio original y conservan sus condiciones. Procedencia y condiciones de uso.