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
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
- Lee la plantilla del mensaje y los nombres de sus propiedades.
- Relaciona el identificador de reserva con el evento que ocurrió.
- 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.
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.
- 01Prepara el ejemplo con las dependencias indicadas en «Antes de ejecutar».
- 02Diseña un evento de éxito y uno de rechazo, y revisa datos que expondrían.
- 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.
Material de apoyo · descarga, glosario y referencias
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.