2011-02-12 57 views
47

點擊創建過濾器無法從文檔中找出如何爲兩個或更多標籤創建過濾器。如果我有兩個標籤com.test.TestClassAcom.test.TestClassB如何創建一個顯示這兩個類的日誌的過濾器?我看到你如何才能啓動ADB只有特定的標籤,但是如何在eclipse中完成呢?請提供詳情,謝謝。在eclipse中創建新過濾器時,我需要在標記行上輸入什麼內容?安卓LogCat過濾器在Eclipse中的多個標籤

回答

1

我看到的唯一方法是Create a Filter using PID,這樣您的應用程序的evey日誌消息將顯示在該過濾器中。我想知道是否有可能通過tag名稱在當前版本的ADT中進行日食。

+1

我也很高興知道..我使用PID,單個TAG和/或多個過濾器。 TAG過濾器中沒有元字符? – DJC

9

在2月12日,上午02時58分,AndroidDevTime寫道:

如果我有兩個標籤 com.test.TestClassA和com.test .TestClassB如何創建顯示這兩個類的日誌的篩選器 ?

的 「日誌標籤」 字段接受Java正則表達式,所以這樣做:

^com.test.TestClassA $ |^$ com.test.TestClassB

這完全匹配這些標籤你指定。你可能更經濟/更有效率/無論有什麼正則表達式,這取決於你想用多少錢來解決這個問題。

+0

我真的不知道如何使用這個。它只是不能以編程方式使用Runtime.getRuntime()。exec(); – Shine

27

在SDK的Eclipse現在顯示兩個版本的logcat(一個不建議使用)的最新版本;在不推薦的版本中,可以使用OR bar組合篩選器:|

例如在+點擊和造就了一個對話框,以創建一個新的過濾器,讓你的過濾器的名稱,然後在其中一個字段(例如TAG)進入com.lampreynetworks|Bluetooth時,你會看到一個包含所有標籤輸出com.lampreynetworksBluetooth。 '*'隱含在這裏,就好像TAG的任何部分包含將要顯示的任何文本一樣。另請注意,OR欄之間不得有空格!

我還沒有試過將'by TAG'和'by(某些其他選項)'結合起來,但不知何故,我有一種感覺,不會工作。

+5

OR欄之間沒有空格! –

54

作爲pointed通過Brain Reinhold你可以結合標籤過濾器和垂直條|(這顯然意味着邏輯「或」)。您也可以使用(以及其他正則表達式)在logcat的搜索框中語法(用tag:前綴前面的標籤):

tag:com.test.TestClassA|com.test.TestClassB

更復雜的過濾也是可能的。例如這裏是顯示從任android.process.mediacom.android.camera應用消息,其具有在消息文本中的至少一個數字(\d)和被標記有任一dalvikvmAndroidRuntime標籤的搜索過濾器:

app:android.process.media|com.android.camera tag:dalvikvm|AndroidRuntime text:\d

Screenshot

一個短而有用的過濾器是tag:^(?!dalvikvm),它可以消除所有那些嘈雜的Dalvik日誌。

另外值得一提的是,您可以快速將垂直欄要禁用的例子app:android.process.media|com.android.camera之後(如將|部分結束禁用過濾器的任何部分應用程序名稱,而上述有效地禁用過濾仍然通過標籤和文本保留過濾)。

+1

使用也可以只使用一小部分詞語進行過濾,如'cam'而不是'com.android.camera'。但請記住,它是區分大小寫的!例如。對於藍牙開發,我使用'tag:BT | luetooth | bt | Bt | MyAppTag' – OneWorld

2

我只是從命令行執行它。每個adb過濾器都有不同的終端。然後,如果您將它們排列在一起,您可以瞭解發生的事情。