PuperGrep — логи в браузере в реальном времени

в 5:54, , рубрики: grep, logger, logs, node.js, socket.io, tail, Веб-разработка, метки: , , , , ,

Вы не любите смотреть логи в консоли или вам не позволяют их любить, а следить за ходом дел как-то нужно?

PuperGrep — просмотрщик логов в браузере, который работает как tail -F, grep и подсвечивает самое интересное в вашем браузере. Или даже на вашем android, iPhone или iPad.

Скриншот PuperGrep

Возможности

  • Реалтайм-просмотр логов.
  • Возможность смотреть только интересные строки по списку регекспов.
  • Возможность подсвечивать особенно интересные строки по списку регекспов.
  • Способы группировки списков регекспов для фильтрации или подсветки через or (хотя бы одно) или and (все).
  • Регулировка количества строк, отображаемых на экране.
  • Возможность поставить лог на паузу, чтобы рассмотреть самое интересное.
  • Быстрое переключение между логами с поиском по названию лога.
  • Размер шрифта для куриц и орлов.
  • Ссылки на конкретные логи со всеми настройками фильрации, подсветки и отображения (для букмарков и отправки друзьям вконтакте).
  • Автоподсветка ссылок в логах
  • Режим html лога (можно выводить последние загруженные в ваш сервис картинки).
  • Подсветка активности в логе, даже если вы отфильтровали всё, что можно.

Невозможности

  • Листать туда-сюда по логу на бесконечность. Только реалтайм.
  • Скачивать логи целиком (у нас для этого nginx + autoindex).

Использование

Всё добро написано на node.js + socket.io + twitter bootstrap.

Чтобы завести у себя, выполняем следующие команды:

mkdir ~/mypupergrep
cd ~/mypupergrep
mkdir node_modules
npm install pupergrep

Т.к. pupergrep — всего лишь модуль npm, нам нужно будет написать нехитрый сервер и сохранить его в ~/mypupergrep/server.js:

(function() {
    var PuperGrep = require("pupergrep"),
        puper     = new PuperGrep(),
        manager   = puper.getLogReaderManager();

    // здесь my_cool_log - название лога, а /var/log/my_cool_log - путь к нему
    manager.addLog("my_cool_log", "/var/log/my_cool_log", function(error) {
        if (error) {
            console.log("Error adding test log", error);
            return;
        }

        // if your log may be interpreted as html:
        // manager.setLogType("my_cool_log", "html");

        puper.listen(8080, "127.0.0.1");
    });
})();

Запускается командой:

node server.js

Теперь по адресу http://127.0.0.1:8080/ будет виден ваш собственный PuperGrep с логом my_cool_log.

Если использовать в production, то разумно перед вашим сервером поставить nginx, который будет заниматься авторизацией пользователей или даже раздачей статики. Об этом есть на . Стоит учесть, что nginx не поддерживает websockets (пока что) и придётся при каждом открытии страницы ждать пару секунд для переключения на xhr-polling.

Конец концов

На страничке проекта на Github можно почитать подробнее. Там же можно оставить свой pull request, я буду только рад.

Демка, там активно пишется только uptime лог.

Автор: bobrik


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js