ForHosting KIT · Utilidades de desarrollo

Analizar marcas de tiempo de logs

La marca 25/Jul/2026:14:30:00 +0200 de Apache, la Jul 25 14:30:00 de syslog y 2026-07-25T14:30:00.123Z vuelven cada una como una hora ISO 8601 en UTC, con los milisegundos de época y el formato reconocido. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Texto
2026-07-25T14:30:00.123Z INFO worker started
Obtiene
Iso
2026-07-25T14:30:00.123Z
Época (ms)
1 784 989 800 123
Formato de salida
iso8601

Los archivos de registro no se ponen de acuerdo sobre cómo escribir una marca de tiempo. Su aplicación emite ISO 8601, el host escribe syslog y el servidor web lo sella todo en el formato common log de Apache, de modo que fusionar tres fuentes implica escribir el mismo código de análisis una vez más. Una sola llamada sustituye una pila de expresiones regulares por formato y cálculos de zonas horarias.

Tres formatos, una respuesta normalizada

Cada fuente de registros eligió su propia convención hace décadas y nunca la cambió. Las marcas ISO 8601 como 2026-07-25T14:30:00.123Z son inequívocas, pero solo son uno de los formatos que encontrará en la práctica. Las líneas syslog según RFC 3164 comienzan con una marca como Jul 25 14:30:00: sin año, sin zona horaria y con un doble espacio cuando el día tiene un solo dígito.

Los registros de acceso de Apache y nginx en formato common log usan una forma completamente distinta: 25/Jul/2026:14:30:00 +0200, con barras, dos puntos y una zona numérica. El analizador de marcas de tiempo de registros acepta la marca inicial de una línea en cualquiera de los tres formatos y responde con una única cadena ISO 8601 UTC normalizada, los milisegundos epoch y el nombre del formato detectado. Usted deja de ramificar según el tipo de fuente: llegue lo que llegue, un solo campo le dice cuándo ocurrió.

Todo lo que no comience con una marca de tiempo conocida se rechaza con un error claro en lugar de una fecha adivinada, de modo que una línea mal formada falla ruidosamente aguas arriba en vez de corromper silenciosamente sus analíticas aguas abajo.

Qué significa realmente normalizar

La normalización es donde viven los errores sutiles, así que las reglas se enuncian con claridad. Una entrada ISO 8601 con desplazamiento explícito, por ejemplo 2026-07-25T16:30:00+02:00, se convierte a UTC y se devuelve como 2026-07-25T14:30:00.000Z: el mismo instante, una única grafía canónica. Una marca ISO sin zona alguna se asume como UTC, que es el valor predeterminado menos sorprendente para registros de servidor.

La zona numérica obligatoria de Apache se respeta exactamente. Los segundos fraccionarios se conservan con precisión de milisegundos. La validación del calendario es estricta: el 30 de febrero, una hora 25 o un segundo 61 son errores, no desbordamientos silenciosos al día siguiente, porque una canalización de registros que acepta fechas imposibles es una que tarde o temprano le engañará durante un incidente.

Diseñado para canalizaciones, determinista por construcción

El analizador es una función pura: expresiones regulares para reconocer el formato y después aritmética de calendario con enteros para convertir entre fechas civiles y el epoch. Nunca lee el reloj del sistema, nunca llama a la red y nunca depende de la zona horaria de la máquina donde se ejecuta, lo que significa que la misma entrada produce la misma salida en sus pruebas de hoy y en producción dentro de un año.

Ese determinismo importa cuando usted reproduce registros archivados por una canalización nueva y espera que la línea temporal reconstruida coincida con la original byte a byte. Los usos típicos son normalizar archivos de formatos mixtos antes de cargarlos en un motor de búsqueda, alinear eventos de registros de aplicación, sistema y servidor web sobre una única línea temporal UTC durante el análisis de incidentes, y validar que un agente de envío selle las líneas en el formato que su colector espera.

Fusionar registros de distintas fuentes

Normalice marcas ISO, syslog y Apache sobre una única línea temporal UTC antes de cargar archivos mixtos en su almacén de registros.

Reconstruir la línea temporal de un incidente

Alinee cronológicamente los eventos de aplicación, sistema y servidor web cuando cada capa selló sus líneas de forma diferente.

Validar el formato de un agente de envío

Compruebe que las líneas que salen de sus agentes realmente comienzan con el formato de marca de tiempo que su colector espera, rechazando pronto las líneas mal formadas.

¿Cuánto cuesta?

El mismo analizador también funciona gratis en su navegador en esta página.

¿Qué formatos de marca de tiempo se admiten?

ISO 8601 (con o sin segundos fraccionarios y desplazamiento de zona horaria), syslog según RFC 3164 como 'Jul 25 14:30:00', y el formato common log de Apache como '25/Jul/2026:14:30:00 +0200'.

¿Qué pasa si una marca de tiempo no tiene zona horaria?

Se asume que es UTC. Las marcas con desplazamiento explícito se convierten a UTC, de modo que toda respuesta vuelve en la misma forma normalizada.

¿Qué pasa si la línea no comienza con una marca de tiempo conocida?

Las fechas imposibles como el 30 de febrero o la hora 25 se rechazan del mismo modo.

¿Se almacenan mis datos de registro?

No. La línea se analiza en memoria y se descarta; solo se devuelve la marca de tiempo normalizada.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/timestamp-log-parse

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/timestamp-log-parse \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"2026-07-25T14:30:00.123Z INFO worker started"}'
{
  "text": "2026-07-25T14:30:00.123Z INFO worker started"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.timestamp_log_parse",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_chars10000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Esta API toma una línea de registro, lee la marca de tiempo inicial en cualquiera de los tres formatos y la devuelve normalizada a ISO 8601 UTC, junto con los milisegundos epoch y el formato detectado.

Qué significa realmente normalizar

El año ausente de syslog es el único lugar donde una suposición es inevitable: RFC 3164 sencillamente no lo incluye, de modo que el analizador lo completa desde el parámetro default_year (2000 salvo que usted indique otro) y marca el resultado con year_assumed: true para que la propia salida admita la suposición.

Diseñado para canalizaciones, determinista por construcción

El mismo código se ejecuta gratis en su navegador en esta página —pegue una línea, vea el resultado— y cuesta $0.002 por solicitud cuando lo automatiza a través de la API, sin que ningún archivo o línea se conserve después de devolver la respuesta.

¿Qué ocurre con las líneas syslog que no llevan año?

El año se completa desde el parámetro default_year (2000 salvo que usted indique el suyo) y el resultado se marca con year_assumed: true para que la suposición sea visible en la salida.

Ver la documentación completa del KIT →