Как объединять и сортировать стауты/логи в реальном времени на Mac?

Как объединять и сортировать стауты/логи в реальном времени на Mac?

Я разрабатываю приложение rails и scala, которое использует MySQL, Redis, MongoDB и memcached на OSX.

Довольно раздражает постоянно держать открытыми 6 терминалов и просматривать там логи, поэтому мне было интересно, есть ли инструмент, который позволяет мне запускать программы, а затем захватывать stdout / log в сокет (или в конец logfile, если это единственный вывод) и объединять его с префиксами для источника.

[MySQL        - 00pid00] SELECT .......
[Rails Server - 11pid11] GET request to /foo
...

В идеале я также могу сортировать и фильтровать, напримерБензопила Apacheпозволяет использовать log4j и создавать собственные поля на основе регулярных выражений (т. е. при возникновении ошибки показывать мне поле, которое отображает только URL-адрес ошибки и HTTP-ответ/файл + строку, вызвавшую ошибку).

(Я знаю sed, awk, grep и т. д., но графический интерфейс гораздо проще в использовании и с ним гораздо быстрее начать работу)

решение1

Если вы можете настроить каждую из этих систем на ведение журнала в файлах, вы можете отслеживать эти журналы из Chainsaw и объединять записи журнала в одну таблицу. Вот как:

  • Загрузите последнюю версию Chainsaw для разработчиков:http://people.apache.org/~sdeboy
  • Выберите вкладку «Добро пожаловать», нажмите кнопку «Просмотреть пример конфигурации приемника» в верхней части вкладки и скопируйте конфигурацию. Создайте несколько записей VFSLogFilePatternReceiver, по одной для каждого файла журнала, который вы собираетесь отслеживать.
    • Самый простой logFormat — MESSAGE — он поместит каждую строку журнала в поле MESSAGE в строку в Chainsaw.
    • Вы можете заставить Chainsaw проанализировать строку журнала, используя поля, определенные в javadoc LogFilePatternReceiver:http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/varia/LogFilePatternReceiver.html
    • Обратите внимание, что если ваш формат журнала охватывает несколько строк, вы можете использовать (LF) для обозначения перевода строки (еще не в этом JavaDoc)
  • После того как все ваши файлы журналов будут отображаться в Chainsaw в виде отдельных вкладок, вы можете собрать все события со всех вкладок на новой вкладке, определив выражение, которое соответствует событиям, которые вы хотите видеть (см. раздел Справка/Учебник для получения документации по синтаксису выражений).
    • Совет: очистите и приостановите вкладку журнала бензопилы (из меню «Текущая вкладка»), чтобы убедиться, что сообщения журнала бензопилы не смешиваются с вашими.
    • Выберите «Просмотр, создание вкладки из выражения»
    • Самое простое выражение, которое будет соответствовать всем записям во всех вкладках, — MSG EXISTS.
    • будет создана новая вкладка с вашим выражением и заполнена всеми существующими событиями, соответствующими выражению
    • по мере поступления новых событий, соответствующих выражению, они будут добавляться как на исходную вкладку, так и на вкладку выражения

решение2

Вы можете добавлять собственные файлы журналов к стандартным/Applications/Utilities/Console.app

Связанный контент