Heroku — это хостинговая платформа, к логам которой можно получить доступ через heroku logs
командную строку:
$ 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
Как вы могли заметить выше, хронологический порядок не соблюдается .
Heroku доволен этим и не дает особых советов.
Есть ли какой-нибудь инструмент или сценарий bash, который я могу использовать для сортировки журналов Heroku?
Журналы довольно маленькие, максимум 1500 строк.
Бесплатный, с открытым исходным кодом, работает в Linux bash.
Вы можете попробовать это:
heroku logs > heroku.txt
sort -n -t\ -k1 heroku.txt
Сортирует -n
числа по порядку, -t\
бит использует пробел в качестве разделителя, -k1
использует первый столбец (отметка времени).
Не помещая журналы в отдельный файл, я предполагаю, что вы могли бы использовать:
heroku logs | sort -n -t\ -k1
Аналогично, для сортировки в обратном порядке ( -nr
):
heroku logs | sort -nr -t\ -k1
Я написал небольшой скрипт для heroku logs -t
сортировки живых журналов ( ).
Вы можете запустить с:
heroku logs -t | python delayed_sort.py
Если вы хотите сохранить окраску:
script -q -c "heroku logs -t" -a /dev/null | python delayed_sort.py
Сценарий просто хранит в буфере последние 100 строк журнала. Когда буфер заполняется, выводится строка с самой старой меткой времени (используя heap-queue для эффективности...). Буфер также очищается, когда нет новых строк журнала в течение 1 секунды.
Есть небольшой шанс, что строки останутся несортированными: строка с отметкой времени старше 100 предшествующих строк или строка со старой отметкой времени после 1-секундной паузы в общении.
heroku-logs
, со script -q ...
строкой.Как предложил Жилль, это самый простой и работает безупречно:
heroku logs | sort
Николя Рауль
heroku logs | sort -n -t\ -k1
? Спасибо!Эллиот Рид
Жиль "ТАК - перестань быть злым"
heroku logs | sort
будет работать так же хорошо. Формат даты имеет то свойство, что лексикографический порядок соответствует хронологическому порядку, благодаря полям фиксированной ширины и в порядке убывания значимости.Эллиот Рид