482 Stimmen

LogCat filtern, um nur die Nachrichten von My Application in Android zu erhalten?

Ich habe festgestellt, dass ich bei der Verwendung von Logcat mit Eclipse mit ADT für Android auch Meldungen von vielen anderen Anwendungen erhalte. Gibt es eine Möglichkeit, dies zu filtern und nur Meldungen von meiner eigenen Anwendung anzuzeigen?

20voto

Inder Kumar Rathore Punkte 38280

Bei mir funktioniert das unter Mac Terminal
Gehen Sie zu dem Ordner, in dem Sie die adb dann geben Sie folgenden Befehl in das Terminal ein

./adb logcat MyTAG:V AndroidRuntime:E *:S

Hier werden alle Logs von MyTAG y AndroidRuntime

18voto

digitalfootmark Punkte 399
adb logcat -e "appname" 

Dies funktioniert perfekt, wenn Zeilen nur für eine Anwendung gefiltert werden.

13voto

Paschalis Punkte 11227

Aktualisierung Mai 17

Es ist ein paar Jahre her, und die Dinge haben sich geändert. Und Eclipse wird nicht mehr offiziell unterstützt. Hier sind also zwei aktuellere Ansätze:

1. Android Studio

enter image description here In der Android monitor Toolbox können Sie logcat filtern nach debuggable process . Wenn Sie eine Anwendung entwickeln, ist dies normalerweise ein Prozess, in dem Fehler behoben werden können. Hin und wieder habe ich Probleme damit und mache Folgendes:

  1. Tools -> Android -> Enable ADB Integration .
    Wenn sie bereits aktiviert war, schalten Sie sie aus und dann wieder ein.

  2. Trennen Sie Ihr mobiles Gerät vom Stromnetz und schließen Sie es wieder an.

Es gibt auch Optionen zum Filtern über Regex und die Debug-Ebene

2. logcat-Farbe

Dies ist ein netter Python-Wrapper auf der Grundlage von adb logcat wenn Sie eine terminalbasierte Lösung verwenden möchten. Das Gute daran ist, dass Sie mehrere Konfigurationen speichern und einfach wiederverwenden können. Filtern nach tags ist recht zuverlässig. Sie können auch filtern nach package nur die Protokolle einer oder mehrerer Anwendungen zu sehen, aber Sie starten logcat-color kurz vor dem Start Ihrer Anwendung.

Alte Antwort:

Es scheint, dass ich keine Kommentare zu früheren Antworten abgeben kann, also werde ich eine neue Antwort schreiben. Dies ist ein Kommentar zu Tom Mulcahy Antwort, die zeigt, wie der Befehl geändert werden sollte, damit er auf den meisten Geräten funktioniert, da adb shell ps Die PID-Spalte ist variabel.

HINWEIS: Der folgende Befehl funktioniert, wenn Sie viele Geräte angeschlossen haben. Also device id erforderlich ist. Andernfalls können Sie die Klammern '[', ']' einfach weglassen.

1. Um die Spalte pid herauszufinden, geben Sie ein:

adb [-s DEVICE_ID] shell ps | head -n 1

Merken Sie sich nun die Spaltennummer für die PID. Die Nummerierung beginnt mit 1 .

2. Geben Sie dann Folgendes ein:

adb [-s DEVICE_ID] logcat | grep $(adb [-s DEVICE_ID] shell ps \
| grep "com.example" | awk -F" " ' {print $PUT_COLUMN_HERE}')

Setzen Sie die Spalte, die Sie sich gemerkt haben, einfach in PUT_COLUMN_HERE z.B. $5

Caveat

Jedes Mal, wenn Sie Ihre Anwendung neu starten, müssen Sie den zweiten Befehl erneut ausführen, da die Anwendung eine neue PID vom Betriebssystem erhält.

12voto

Sandeep PC Punkte 717

Ubuntu : adb logcat -b all -v color --pid=`adb shell pidof -s com.packagename` Mit Farbe und fortlaufendem Protokoll der App

11voto

wubwubb Punkte 325

Dies hat bei mir in der Git Bash funktioniert:

$ pid=$(adb shell ps | grep <package name> | cut -c11-15) ; adb logcat | grep $pid

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X