Heroku es una plataforma de alojamiento a cuyos registros se puede acceder a través de la heroku logs
línea de comando:
$ heroku logs
2014-07-17T06:24:02.216403+00:00 app[web.1]: Started
2014-07-17T06:24:02.216410+00:00 app[web.1]: Stopped
2014-07-17T06:24:02.216408+00:00 app[web.1]: Paused
Como puedes notar arriba, no se respeta el orden cronológico .
Heroku está contento con eso y no da ningún consejo en particular.
¿Hay alguna herramienta o secuencia de comandos bash que pueda usar para ordenar los registros de Heroku?
Los registros son bastante pequeños, 1500 líneas como máximo.
Gratis, de código abierto, se ejecuta en Linux bash.
Podrías intentar esto:
heroku logs > heroku.txt
sort -n -t\ -k1 heroku.txt
-n
Está ordenando los números en orden, bit -t\
está usando un espacio como separador, -k1
está usando la columna uno (la marca de tiempo).
Sin poner los registros en un archivo separado, supongo que podría usar:
heroku logs | sort -n -t\ -k1
De manera similar, para ordenar en orden inverso ( -nr
):
heroku logs | sort -nr -t\ -k1
Escribí un pequeño script para heroku logs -t
ordenar los registros en vivo ( ).
Puedes correr con:
heroku logs -t | python delayed_sort.py
Si quieres mantener el color:
script -q -c "heroku logs -t" -a /dev/null | python delayed_sort.py
El script simplemente contiene un búfer de las últimas 100 líneas de registro. Cuando el búfer se llena, la línea con la marca de tiempo más antigua aparece (usando heap-queue para mayor eficiencia...). El búfer también se vacía cuando no hay nuevas líneas de registro durante 1 segundo.
Todavía existe una pequeña posibilidad de que las líneas salgan sin clasificar: una línea con una marca de tiempo anterior a las 100 líneas anteriores, o una línea con una marca de tiempo anterior después de una pausa de comunicación de 1 segundo.
heroku-logs
, con la script -q ...
línea.Según lo sugerido por Gilles, este es el más fácil y funciona perfectamente:
heroku logs | sort
Nicolás Raúl
heroku logs | sort -n -t\ -k1
? ¡Gracias!Elliot Reed
Gilles 'SO- deja de ser malvado'
heroku logs | sort
funcionaría igual de bien. El formato de fecha tiene la propiedad de que el orden lexicográfico coincide con el orden cronológico, gracias a que los campos son de ancho fijo y en orden de importancia decreciente.Elliot Reed