volver al archivo
15
MAY
día 15 / 30

Huellas en memoria

Medio
stringsregexobjects
historia · contexto

Historia

Día 15

Los logs de sistema tienen un formato estricto: timestamp entre corchetes, nivel en mayúsculas, dos puntos, mensaje. Todo lo que no lo cumple es corrupción o forma parte de un mensaje multilínea.

Necesitas un parser robusto. Cuando llegue al día 18 de los logs vas a ver por qué.

objetivo · spec

Tu misión

Tu misión

Implementa parsearLinea(linea) que recibe un string con formato:

[<timestamp>] <NIVEL>: <mensaje>

Y devuelve un objeto { timestamp, nivel, mensaje }. Si la línea no cumple el formato, devuelve null.

Reglas

  • timestamp es todo lo que hay dentro de los corchetes (cualquier contenido sin ]).
  • nivel es una palabra de letras/números (\w+).
  • mensaje es todo lo que queda tras los dos puntos y un espacio.
  • Tiene que haber exactamente un espacio tras ] y un espacio tras :.

Ejemplo

parsearLinea('[2026-04-01T10:30:00Z] INFO: arranque ok')
// → { timestamp: '2026-04-01T10:30:00Z', nivel: 'INFO', mensaje: 'arranque ok' }

parsearLinea('linea suelta sin formato')  // → null
validación

Casos de prueba

tests/5.casesmostrando 5 de 5
  1. [01]línea canónica
  2. [02]sin corchetes ni nivel
  3. [03]timestamp breve
  4. [04]dos puntos en el mensaje no rompen el parse
  5. [05]Lía activa a una hora que no le tocaba