2015-09-23 20 views
6

Kann der Paketname des Logs auch in jeder Zeile angezeigt werden?
Mitadb shell Logcat mit Paketname

logcat -v lange

genau Feld der Paketnamen verlassen (nach PID) leer.
Ich möchte die Protokolle aus einer bestimmten Anwendung mit verschiedenen Tags filtern, nur darüber nachdenken, ob es möglich ist.

Antwort

4

logcat Datensatz hat kein "Paketnamenfeld". Daher gibt es keine standardmäßige/eingebaute Möglichkeit, nach dieser zu filtern.

Obwohl seit Android 7.0 Sie logcat --pid Option mit pidof -s Befehl kombiniert verwenden können Ausgabe von binären/Paketnamen zu filtern:

adb shell logcat --pid=$(pidof -s <package_name>) 
+0

Nicht funktioniert für mich auf einem Marshmallow-basierten Gerät: $ adb -d shell logcat --pid = 6693 Nicht erkannte Option - Verwendung: logcat [Optionen] [Filterspecs] '... scheint nicht wie' --pid' ist eine gültige Option mehr. – Jules

+0

@Jules, 'logcat --pid' wurde in Nougat eingeführt –

6

Das ist mein Skript. Ein bisschen rostig, aber immer noch funktionierend.

PID=`adb shell ps | grep -i <your package name> | cut -c10-15`; 
adb logcat | grep $PID 

Eigentlich habe ich einen Python-Skript mehr Farben hinzuzufügen, und eine while-Schleife Überwachung für diesen Prozess zu halten, wenn es neu gestartet wird, aber ich denke, Sie erhalten den Punkt werden.

+0

Ich weiß eigentlich nicht, wie man das benutzt .. Ich weiß weder, wie man Skripte von der Kommandozeile aus startet, noch wie man das in meiner Android App benutzt eigentlich will/brauche das). Ich mache es gerade mit Runtime.getRuntime(). Exec ("su -c logcat -d -v lang"); aber ich bekomme keine Paketnamen. –

+0

Was ist der 'cut -c10-15' Teil für? Vielen Dank. –