2016-09-02 124 views
2

我在**\Android\sdk\platform-tools目錄中使用adb logcat。我想通過軟件包名稱篩選日誌消息,以便我可以看到來自我的應用程序的日誌消息。我已經得到儘可能使用adb logcat按包名稱篩選

adb logcat *:E 

它只顯示錯誤級別上的消息。然後我試圖通過標籤過濾掉東西(所以如果沒有其他方式可以通過應用/軟件包名稱來過濾掉東西,我想我只是在標籤中輸入一個名稱來過濾這些東西),但運行的東西類似於

adb logcat TAG:E 

似乎沒有濾除任何東西。我看了一下 Android Studio user guide,但那並沒有讓我更進一步。

我正在使用Android Studio,當我真正使用它時,我不想在應用程序崩潰後看到我的應用程序的日誌,而不僅僅是在Android Studio中進行調試。

在此先感謝您的幫助或提示。

+1

使用'adb logcat -s TAG:*'只顯示'TAG'ged messages –

+0

@AlexP。這適用於標籤!以爲我忽略了這樣的傻事。謝謝。 – Abby

+0

不幸的是,這些答案都不適合我。 – Abby

回答

5

您可以使用--pid=<pid>選項過濾進程ID輸出adb logcat

要獲取應用程序的進程ID,可以在應用程序仍在運行時運行adb shell ps | FINDSTR <app name>(對於Windows)或adb shell ps | grep <app name>(對於* nix和OSX)。

由於您試圖在應用程序崩潰後獲取logcat輸出,因此ps命令將不起作用。您通常可以通過運行adb logcat | FINDSTR <search term>(對於Windows)或adb logcat | grep <search term>(對於* nix和OSX)來過濾logcat輸出。

這樣,您仍然可以將有意義的標籤分配給您的調試消息並進一步過濾它們。

希望這會有所幫助!

+0

嗯,它返回''grep'不被識別爲內部或外部命令,可操作程序或批處理文件。' – Abby

+0

@Abby你在哪裏運行這些命令?您使用什麼操作系統? –

+1

我正在使用Windows 8.1,運行'** \ Android \ sdk \ platform-tools'中的命令(如問題中所述)。 – Abby