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?
Antworten
Zu viele Anzeigen?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
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.
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
- See previous answers
- Weitere Antworten anzeigen