2012-06-05 90 views
0

我搜索了一切似乎能夠影響logcat的東西,但我無法找到這個問題的答案。我正在調試一個大型應用程序,每秒鐘將數百個logcat消息轉儲到屏幕上。在Eclipse中,我使用正則表達式來過濾日誌標記,但這是奇怪的地方。 「暫停」按鈕不會被激活,因爲沒有明顯的原因,並且在獲得大量新消息之前,我可以根據我正在調查的特定事件順序獲取日誌,然後它們將被一次一次地覆蓋。我甚至設置了斷點並嘗試用「導出」按鈕一點一點地捕獲日誌,但該應用程序是多線程的,並且由於來自其他線程的消息,它們仍然很快消失。以某種方式增加緩衝區會很好,或者讓舊消息保持原樣,儘管此時我願意完全免除它,只是將其輸出到文件中,但我不確定如何通過日誌標記進行過濾從命令行使用我的正則表達式。我有什麼選擇?Logcat問題(暫停,緩衝區,輸出重定向)

P.S.我一直在四處尋找,我希望這不是多餘的 - 我沒有找到任何具體解決我的問題的東西,儘管我當然遇到了大量相關的線程,但這些線程並沒有太大的幫助。非常感謝!

回答

0

我有類似的問題。我正在研究與Web服務器通信並下載大量數據的應用程序。我幾乎爲每個變量記錄日誌,我必須測試它們以查看從JSON接收的結果是否正確。所以,我做的事情是登錄文件中的所有日誌我的SD卡上,我做了這樣的事情:

public void log2File(String filename, String log, int type){ 

    switch(type){ 

    case 1: // debug 

    case 2: //verbose 

    case 3: //warning 

     //..and etc 
    } 
} 

我沒有找到更好的東西爲我的解決方案,所以這是我做的方式當然你必須把你的日誌添加到一個文件中並保存。

希望這個解決方案對你有好處。

0

我發現eclipse logcat窗口相當有很高的日誌記錄容量 - 如果嘗試關閉它,它甚至不會保持禁用狀態。

要實際捕獲所需的數據,我傾向於使用命令行中的adb logcat命令。在Linux上,或者可能在cygwin或OSX,你應該能夠做到:

adb logcat | tee logfile 

而且都可以看到飛馳而過的消息,並讓他們記錄到文件中。

0

我知道這個問題很老,但我和你有完全相同的問題。我到處尋找一個好的解決方案,但沒有找到一個適合我的工具,所以我開始創建我自己的工具。如果你在Mac上,你可以使用LogRabbit來做你想做的事情。它可以通過兩種不同的方式幫助解決您的問題。

  1. 你可以在命令行中使用adb logcat -v threadtime和日誌寫入磁盤,並導入到LogRabbit。

  2. 過濾機制應足夠快,足以處理您所談論的日誌量。

看看http://lograbbit.com我希望這會有所幫助。