Filtern Sie die Ausgabe in logcat nach dem Tagnamen


151

Ich versuche, die Logcat-Ausgabe eines realen Geräts (kein Emulator) nach dem Tag-Namen zu filtern, erhalte jedoch alle Nachrichten, was ein ziemlicher Spam ist. Ich möchte nur Nachrichten aus dem Browser lesen, die so etwas wie "browser: " oder "webkit: " sein sollten, aber es funktioniert nicht ... Hier ist, was ich bekomme:

tatsächliche Ausgabe

Antworten:


294

benutze das:

adb logcat -s "TAGNAME"

7
Danke dir! Die oben entspricht adb logcat *: s 'tagname'
Munch

3
Wie kann ich einen <Tagnamen> herausfiltern?
Arunabh Das

Ich glaube, der einzige Weg zum Herausfiltern sind Ebenen. Wenn zum Beispiel eine App Debug-Spam sendet, stellen Sie die Logcat-Ebene so ein, dass nur Info und höhere Ebenen angezeigt werden: Logcat *: I
Jemand irgendwo

1
Ist es möglich, oben mit -f Dateiname zu verwenden? Angenommen, mein Szenario besteht darin, die Protokolle nach TagName zu filtern und in eine Textdatei zu kopieren.
Grüner Kobold

9
Das - "adb logcat TAGNAME: s" wird ein lautes Tag auslösen.
Don Park

56

Falls jemand wie ich darauf stößt, können Sie nach mehreren Tags filtern, indem Sie dazwischen ein Komma hinzufügen:

adb logcat -s "browser","webkit"

Erklären Sie, wo ich diesen Code einfügen soll. Ich bin eine neue Biene. Bitte erklären Sie
Zar E Ahmer

1
@Nepster Geben Sie das in das Terminal ein.
Async

Wenn Sie Cygwin unter Windows verwenden, können Sie grep verwenden ... und ja, das funktioniert.
Sgupta

12

Eine weitere Option ist das Festlegen der Protokollebenen für bestimmte Tags:

adb logcat SensorService: S PowerManagerService: S NfcService: S Leistung: I Sensoren: E.

Wenn Sie nur die Protokollebenen für einige Tags festlegen möchten, können Sie dies Tag für Tag tun.


9

Verlassen Sie sich nicht auf die ADB-Shell, sondern behandeln Sie sie (die adb logcat) als normale Linux-Ausgabe und leiten Sie sie dann weiter:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
Dies ist eine schlechte Wahl, da viel unnötiger Datenverkehr gesendet wird und der Filter offensichtlich nicht funktioniert. Wenn eine nicht verwandte Prozessprotokollmeldung angezeigt wird, die zufällig eine Zeichenfolge enthält.
John Smith

and the filter obviously won't work, Hast du es versucht? Ich habe meine Antwort entsprechend dem Ergebnis eingefügt.
Siwei Shen 27

1
Die Frage war für Windows, wo grep nicht verfügbar ist
sroskelley

1
Wenn Sie Cygwin unter Windows verwenden, können Sie grep verwenden ... und ja, das funktioniert.
Sgupta

6

So erstelle ich ein Tag:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

Sie könnten getCannonicalName verwenden

Hier habe ich folgende TAG-Filter:

  • any (*) View - VERBOSE
  • jede (*) Aktivität - VERBOSE
  • Jedes Tag, das mit Xyz (*) - ERROR beginnt
  • System.out - SILENT (da ich Log in meinem eigenen Code verwende)

Hier was ich in Terminal tippe:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.