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?

466voto

Tom Mulcahy Punkte 4547

Linux und OS X

Verwenden Sie ps/grep/cut, um die PID zu ermitteln, und suchen Sie dann mit grep nach logcat-Einträgen mit dieser PID. Hier ist der Befehl, den ich verwende:

adb logcat | grep -F "`adb shell ps | grep com.asanayoga.asanarebel  | tr -s [:space:] ' ' | cut -d' ' -f2`"

(Sie könnten die Regex weiter verbessern, um das theoretische Problem zu vermeiden, dass nicht zusammenhängende Protokollzeilen dieselbe Nummer enthalten, aber das war bei mir nie ein Problem)

Dies funktioniert auch beim Abgleich mehrerer Prozesse.

Windows

Unter Windows können Sie das tun:

adb logcat | findstr com.example.package

327voto

shanet Punkte 7029

Die Paketnamen sind garantiert eindeutig, so dass Sie verwenden Sie die Log mit dem Tag als Ihrem Paketnamen und filtern Sie dann nach dem Paketnamen :

HINWEIS: Ab Build Tools 21.0.3 wird dies nicht mehr funktionieren, da TAGS auf 23 Zeichen oder weniger beschränkt sind.

Log.<log level>("<your package name>", "message");

adb -d logcat <your package name>:<log level> *:S

-d bezeichnet ein tatsächliches Gerät und -e kennzeichnet einen Emulator. Wenn mehr als 1 Emulator in Betrieb ist, können Sie -s emulator-<emulator number> (z.B., -s emulator-5558 )

Beispiel: adb -d logcat com.example.example:I *:S

Oder wenn Sie Folgendes verwenden System.out.print Um Meldungen an das Protokoll zu senden, können Sie adb -d logcat System.out:I *:S um nur Aufrufe an System.out anzuzeigen.

Alle Protokollebenen und weitere Informationen finden Sie hier: https://developer.Android.com/studio/command-line/logcat.html

http://developer.Android.com/reference/Android/util/Log.html

EDIT: Sieht so aus, als wäre ich ein wenig voreilig gewesen und habe gerade gemerkt, dass du nach logcat in Eclipse gefragt hast. Was ich oben gepostet habe, ist für die Verwendung von logcat über adb von der Kommandozeile aus. Ich bin nicht sicher, ob die gleichen Filter in Eclipse übertragen werden.

194voto

You Kim Punkte 1917

Seit Android 7.0 verfügt logcat über die Filteroption --pid, und der Befehl pidof ist verfügbar. Ersetzen Sie com.example.app durch Ihren Paketnamen.
(ubuntu terminal / Seit Android 7.0)

adb logcat --pid=`adb shell pidof -s com.example.app`

ou

adb logcat --pid=$(adb shell pidof -s com.example.app)

Für weitere Informationen über den Befehl pidof:
https://stackoverflow.com/a/15622698/7651532

56voto

beryllium Punkte 29485

Filter hinzufügen

Add filter

Namen spezifizieren

enter image description here

Wählen Sie Ihren Filter.

enter image description here

54voto

Lennoard Silva Punkte 677

Das funktioniert bei mir mit USB-Debugging:

Die Lösung ist die Verwendung von das geräteeigene Logcat direkt über die Shell.

  1. Schließen Sie das Gerät an und benutzen Sie es:

    adb shell

  2. Verwenden Sie logcat, nachdem Sie die Shell eingerichtet haben:

    logcat | grep com.yourapp.packagename

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