Analizador de registros
Pega registros sin procesar (JSON, logfmt, accesos web, syslog o texto plano) y obtén marcas de tiempo, niveles, excepciones y campos clave sin escribir ningún patrón.
Intervalo temporal
2026-10-20T13:55:36.123Z INFO [gateway] petición recibida path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004Z","level":"error","service":"payment","message":"Cargo fallido","order_id":"A-1042","user_id":4821}
127.0.0.1 - alice [20/Oct/2026:13:55:38 +0000] "POST /api/orders HTTP/1.1" 502 187 "-" "curl/8.5.0"
2026-10-20 13:55:40,512 ERROR [order-service] Excepción no controlada al enviar el pedido
java.lang.IllegalStateException: tiempo de espera de la pasarela agotado
at com.acme.Order.submit(Order.java:42)
Caused by: java.net.SocketTimeoutException: Read timed out
at com.acme.Gateway.call(Gateway.java:77)
2026-10-20T13:55:41.900Z WARN [gateway] reintento programado attempt=2 order_id=A-1042Cómo se usa
- Pega un fragmento de registro o abre un archivo .log / .txt local. El análisis empieza de inmediato (no hay botón de ejecutar) y cada línea se comprueba como JSON, logfmt, acceso web, syslog y texto encabezado por marca de tiempo o nivel, en ese orden.
- Lee primero el resumen: intervalo temporal, recuentos por nivel, excepciones, formatos detectados y las claves de campo más frecuentes. El resumen siempre cubre todos los eventos.
- Haz clic en una etiqueta de nivel o escribe en el buscador para acotar la lista; ambos filtros se combinan. Haz clic en cualquier fila para expandir el mensaje completo, todos los campos, la pila de la excepción y la línea original; después puedes copiar o descargar los eventos filtrados como JSON.
Ejemplo
Registro sin procesar
2026-10-20T13:55:36.123Z INFO [gateway] petición recibida path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004Z","level":"error","service":"payment","message":"Cargo fallido","order_id":"A-1042","user_id":4821}
127.0.0.1 - alice [20/Oct/2026:13:55:38 +0000] "POST /api/orders HTTP/1.1" 502 187 "-" "curl/8.5.0"
2026-10-20 13:55:40,512 ERROR [order-service] Excepción no controlada
java.lang.IllegalStateException: tiempo de espera de la pasarela agotado
at com.acme.Order.submit(Order.java:42)Resumen analizado
Eventos: 4 · Líneas: 6 Intervalo temporal: 2026-10-20T13:55:36.123Z → 2026-10-20T13:55:40.512 (zonas mixtas) Niveles: info 1 · error 3 Excepciones: 1 Formatos: JSON 1 · Web 1 · Texto 2 Campos: path 2 · user_id 2 · bytes 1 · client 1 · method 1 · order_id 1 · protocol 1 · status 1
La línea JSON es un evento; la línea de la clase Java y su pila son líneas de continuación del evento ERROR anterior. La línea de texto sin zona se compara como hora de reloj literal, por eso el intervalo se etiqueta como zonas mixtas. HTTP 502 cuenta como error; el código de estado sigue visible como nivel original.
Reglas, límites y problemas conocidos
- La detección es línea a línea y por orden: JSON (un objeto por línea), logfmt (al menos dos pares clave=valor), registros de acceso común o combinado de Apache/Nginx, syslog RFC 5424/3164 y, por último, texto cuya línea empiece por una marca de tiempo o un nivel admitidos. Cualquier otra cosa se conserva como evento plano: no se descarta ninguna línea.
- Solo se normalizan las marcas de tiempo inequívocas: ISO 8601, fechas con el año primero, horas de los registros de acceso de Apache y segundos o milisegundos Unix. 03/04/2026, los valores solo de fecha y el syslog sin año conservan su texto original y no tienen hora normalizada.
- Las fracciones de segundo se truncan a milisegundos, nunca se redondean. Los desfases se conservan; las horas sin desfase se comparan como horas de reloj literales y el resumen indica «sin zona» o «zonas mixtas».
- Los niveles provienen de un vocabulario fijo (palabras en inglés, chino y árabe), de los números de pino/bunyan, del PRI/severidad de syslog o del estado HTTP (5xx error, 4xx aviso y el resto info). Una línea sin nivel reconocido es desconocida, no info.
- Las líneas con sangría, las tramas de pila, Traceback, Exception in thread y las líneas Caused by se asocian al evento anterior; una línea vacía termina la pila. Es una heurística: un formato multilínea no admitido puede necesitar una línea vacía entre registros.
- Las excepciones se reconocen por nombres de clase que terminan en Exception, Error o Throwable. Gana el Caused by más profundo. Las tramas no se analizan, las causas raíz no se clasifican más allá de eso y no se llama a ningún servicio de IA.
- La lista muestra como máximo 200 eventos coincidentes. Los recuentos, el resumen, copiar y descargar siempre cubren todas las coincidencias, y la lista indica cuándo está truncada.
- Límite estricto de entrada: 5.000.000 de caracteres. Por encima de 500.000 el análisis sigue funcionando, con una espera mayor. Una sola línea de más de 200.000 caracteres se conserva como texto plano.
- No se admiten arrays JSON ni JSON multilínea con formato bonito: solo un objeto por línea. El JSON no válido, los comentarios y las comas finales pasan a texto plano en lugar de repararse.
- No se sube, guarda ni introduce nada en la URL. Los archivos se leen en local con la API File del navegador, y copiar/descargar solo ocurre cuando pulsas el botón.
Herramientas relacionadas
Una vez estructurado el registro, estos son los siguientes pasos habituales.