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
timestampes todo lo que hay dentro de los corchetes (cualquier contenido sin]).niveles una palabra de letras/números (\w+).mensajees 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
- [01]línea canónica
- [02]sin corchetes ni nivel
- [03]timestamp breve
- [04]dos puntos en el mensaje no rompen el parse
- [05]Lía activa a una hora que no le tocaba