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

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

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

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

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

2 ответа2

1

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

0

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

  • Загрузите последний снимок разработчика 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
    • Новая вкладка с вашим выражением будет создана и заполнена всеми существующими событиями, соответствующими выражению
    • по мере поступления новых событий, соответствующих выражению, они будут добавлены на исходную вкладку, а также на вкладку выражения

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .