Desarrollador Node.js: pregunta de entrevista

¿Cómo diseñas logging para Node.js?

Emite logs estructurados con tiempo, severidad, servicio y request o trace ID; registra decisiones y fallos una vez en el límite propietario, elimina secretos y datos personales y evita ruido o bloqueo.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Los logs son líneas JSON con marca de tiempo, nivel, nombre del servicio, versión y el ID de solicitud o traza, escritas por una biblioteca como pino que serializa de forma asíncrona y barata. Una solicitud recibe una línea en la frontera con método, ruta, estado y duración; los eventos de negocio y los fallos se registran una vez donde se toma la decisión, no en cada capa que atraviesan. Los datos personales y secretos se redactan por configuración antes de serializar, los valores de alta cardinalidad quedan fuera de los mensajes, y el nivel se ajusta en runtime para activar debug en un incidente sin desplegar.

Ejemplo

Un logger pino con lista de redacción para cabeceras authorization y campos password se adjunta a cada solicitud mediante un logger hijo con requestId; el handler registra order.created una vez con orderId y amount, y un middleware de errores registra el fallo una vez con la traza. Durante un incidente el nivel se sube a debug mediante un endpoint de administración durante cinco minutos y luego se baja.

Errores frecuentes

  • Registrar el mismo error en cada capa y multiplicar el ruido.
  • Usar console.log en producción, que es síncrono en algunos streams y bloquea el loop.
  • Escribir emails de usuarios, tokens o cuerpos de solicitud en logs enviados a una plataforma externa.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Node.js