Mac でリアルタイムのスタウト/ログを集計および並べ替えるにはどうすればよいでしょうか?

Mac でリアルタイムのスタウト/ログを集計および並べ替えるにはどうすればよいでしょうか?

私は、OSX 上で MySQL、Redis、MongoDB、memcached を使用する Rails および Scala アプリケーションを開発しています。

常に6つのターミナルを開いてログを調べるのはかなり面倒なので、プログラムを起動してstdout / log to socket(またはそれが唯一の出力である場合はlogfile tail)を取得し、それをoriginのプレフィックスで集約できるツールがあるかどうか疑問に思っています。

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

理想的には、並べ替えやフィルタリングも次のようにできるアパッチチェーンソーlog4j を許可し、正規表現に基づいて独自のフィールドを作成します (つまり、エラーが発生した場合、エラーの URL と HTTP 応答/ファイル + エラーの原因となった行のみを表示するフィールドを表示します)。

(sed、awk、grep などは知っていますが、GUI の方がはるかに使いやすく、使い始めるのもずっと早いです)

答え1

各システムをファイルにログするように設定できる場合は、Chainsaw からそれらのログを追跡し、ログ エントリを 1 つのテーブルに集約できます。方法は次のとおりです。

  • Chainsaw の最新の開発者スナップショットをダウンロードします。http://people.apache.org/~sdeboy
  • 「ようこそ」タブを選択し、タブの上部にある「サンプル レシーバー構成の表示」ボタンをクリックして構成をコピーします - 追跡するログ ファイルごとに 1 つずつ、複数の VFSLogFilePatternReceiver エントリを作成します。
  • すべてのログ ファイルが Chainsaw に個別のタブとして表示されたら、表示したいイベントに一致する式を定義することで、すべてのタブのすべてのイベントを新しいタブに収集できます (式の構文に関するドキュメントについては、ヘルプ/チュートリアルを参照してください)。
    • ヒント: チェーンソーのログメッセージが自分のメッセージと混ざらないように、チェーンソーのログタブをクリアして一時停止します (「現在のタブ」メニューから)。
    • 「表示、式からタブを作成」を選択
    • すべてのタブのすべてのエントリに一致する最も単純な式はMSG EXISTSです。
    • 式を含む新しいタブが作成され、式に一致するすべての既存のイベントが表示されます。
    • 式に一致する新しいイベントが到着すると、元のタブと式タブに追加されます。

答え2

標準のログファイルに独自のログファイルを追加できます/Applications/Utilities/Console.app

関連情報