
我正在開發一個 Rails 和 scala 應用程序,該應用程式在 OSX 上使用 MySQL、Redis、MongoDB 和 memcached。
總是打開 6 個終端並瀏覽那裡的日誌是相當煩人的,所以我想知道是否有一個工具可以讓我啟動程序,然後將 stdout / log 抓取到套接字(或日誌文件尾部,如果這是僅輸出)並將其與來源的前綴聚合
[MySQL - 00pid00] SELECT .......
[Rails Server - 11pid11] GET request to /foo
...
理想情況下我也可以像這樣排序和過濾阿帕契電鋸允許 log4j 並基於正規表示式建立我自己的欄位(即,當出現錯誤時,顯示一個僅顯示錯誤 URL 和導致錯誤的 HTTP 回應/文件 + 行的欄位。
(我知道 sed awk grep 和 co,但 GUI 更容易使用,而且上手速度更快)
答案1
如果您可以將每個系統設定為記錄到文件,則可以從 Chainsaw 追蹤這些日誌並將日誌條目聚合到一個表中。就是這樣:
- 拉取 Chainsaw 的最新開發者快照:http://people.apache.org/~sdeboy
- 選擇“歡迎”選項卡,然後按一下選項卡頂部的“查看範例接收器配置”按鈕,然後複製配置 - 建立多個 VFSLogFilePatternReceiver 條目,每個條目對應您要追蹤的每個日誌檔案。
- 最簡單的日誌格式是 MESSAGE - 它將把 MESSAGE 欄位中的每個日誌行放在 Chainsaw 中的一行中。
- 您可以讓 Chainsaw 使用 LogFilePatternReceiver javadoc 中定義的欄位來解析日誌行:http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/varia/LogFilePatternReceiver.html
- 請注意,如果您的日誌格式跨越多行,您可以使用 (LF) 來表示換行(該 JavaDoc 中尚未提供)
- 一旦所有日誌文件作為單獨的選項卡顯示在Chainsaw 中,您就可以透過定義與您想要查看的事件相符的表達式來收集新分頁中所有分頁中的所有事件(有關表達式的文檔,請參閱幫助/教程)句法)。
- 提示:清除並暫停鏈鋸日誌標籤(從「目前標籤」功能表),以確保鏈鋸日誌訊息不會與您的訊息混合在一起
- 選擇“查看,從表達式建立選項卡”
- 符合所有選項卡中所有條目的最簡單表達式是 MSG EXISTS
- 將建立一個包含您的表達式的新選項卡,並填入與該表達式相符的所有現有事件
- 當與表達式匹配的新事件到達時,它們將被添加到原始選項卡以及表達式選項卡中
答案2
您可以將自己的日誌檔案新增至標準中/Applications/Utilities/Console.app