Wie filtere ich logcat in Android Studio?


96

In meinem Logcat gibt es zu viel Ausgabe, daher möchte ich es mit einigen Schlüsselwörtern filtern und im Grunde nur die Ausgabe anzeigen, die die Schlüsselwörter enthält. Gibt es eine Möglichkeit, dies in Android Studio über die Benutzeroberfläche zu tun?



Nein, ich frage, wie die Nachrichten nach Schlüsselwörtern gefiltert werden sollen.
Alessandro Roaro

Ab Android Studio Version 0.4.5 erhalten Sie Nachrichten von der App, die nur ausgeführt wird. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

Antworten:


107

Es gibt zwei Möglichkeiten, dies zu tun. Beide befinden sich auf der Registerkarte Android am unteren Rand der IDE (wo die Logcat-Ausgabe angezeigt wird).

Zunächst können Sie einfach etwas in das Suchfeld oben eingeben und es sollten nur Nachrichten gefiltert werden, die den von Ihnen eingegebenen Text enthalten.

Zweitens können Sie eine erweiterte Filterung durchführen, indem Sie auf das Dropdown-Menü oben rechts klicken, in dem standardmäßig keine Filter angezeigt werden sollen, und auswählenEdit Filter Configuration und angeben, nach was gefiltert werden soll. Mit dieser Methode speichern Sie auch die Filter und können sie wiederverwenden, indem Sie sie in der Dropdown-Liste auswählen.

Bildschirmfoto:
Logcat suchen und filtern


1
Danke für deine Antwort. Ich hatte bereits den ersten ausprobiert, aber er filtert die nicht relevante Ausgabe nicht heraus. Betreff: die zweite Option, leider kann ich das Dropdown-Menü nicht sehen, welche Version verwenden Sie?
Alessandro Roaro

1
Ich verwende v0.3.5 ... habe der Antwort einen Screenshot hinzugefügt.
free3dom

1
Ich habe dies gerade beim Screenshot bemerkt. Es gibt NOCH eine andere Möglichkeit zum Filtern. Auf der linken Seite (rechts neben den Registerkarten) befindet sich ein Symbol mit grünen Pfeilen - es kann ein- und ausgeschaltet werden, um nur Logcat aus dem in der Liste ausgewählten Prozess anzuzeigen :)
free3dom

Vielen Dank, ich hatte diese Filter nicht in meiner Version (0.3.2)
Alessandro Roaro

Kein Problem! Ich nehme an, es wurde damals in v0.3.3 / 4 hinzugefügt. Android Studio wird mit jeder Version besser :)
free3dom

81

Ich klicke mit der rechten Maustaste auf eine Linie, die mir nicht gefällt, und wähle "Linien wie diese falten".Geben Sie hier die Bildbeschreibung ein


9
Wow großartig!! Ich wünschte, ich wüsste das früher!
miva2

7
Dies sollte die Antwort sein.
freut sich

2
Nur das löst meine Flut durch Genymotion auf Android Studio Logcat, danke.
Florida

3
Erstaunt, dass ich das noch nie bemerkt habe. Guter Fund!
dm78

1
ok habe es :-D (doppelklicken Sie einfach auf den grün gefärbten Eintrag mit dem Text: "n interne Anrufe")
Aydin K.

53

Wie @ free3dom sagte, können Sie den Prozess auswählen, von dem Sie Logcats erhalten möchten. Hier ist der Screenshot.

Bildschirmfoto


2
Vielen Dank für das Hinzufügen. Es ist gut, es hier für alle zu haben und ich habe es nur in den Kommentaren erwähnt :)
free3dom

39
Schöne Grafik auch ;-)
Gerard

1
Ab Android Studio Version 0.4.5 erhalten Sie Nachrichten von der App, die nur ausgeführt wird. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

1
+1 für drei drücken Sie diese Option auf "Nur Protokolle des ausgewählten Prozesses
anzeigen

Ich habe ein anderes Problem, wenn ich Filter aus Filterkonfiguration für ein bestimmtes Paket anwende, wird logcat leer.
Bhupesh

17

Ich habe ein Video-Tutorial erstellt, um Ihnen zu zeigen, wie = https://youtu.be/xw2qE5ko_9I

Geben Sie Ihrem Protokoll einen Namen. Ich nannte meine "Wawa".

Geben Sie hier die Bildbeschreibung ein

Gehen Sie in Android Studio zu Android-> Filterkonfigurationen bearbeiten

Geben Sie hier die Bildbeschreibung ein

Geben Sie dann den Namen ein, den Sie den Protokollen gegeben haben. In meinem Fall heißt es "wawa". Hier sind einige Beispiele für die Filtertypen, die Sie ausführen können. Sie können nach System.out, System.err, Protokollen oder Paketnamen filtern:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein


2
Gibt es eine Regex, um dies zu negieren, um die Protokolle zu verbergen, die eine Zeile enthalten?
Hugo M. Zuleta

Nicht, dass ich davon Wüste. Wenn Sie Regex verwenden möchten, ist es meiner Meinung nach am besten, sich in das Android-Betriebssystem einzufügen und Grep auf dem Bash-Terminal zu verwenden.
Gene

^ (?! Chrom) (?! WebViewFactory) (?! Zygote) .... füge Tags wie diese hinzu, die du verstecken möchtest wie (?! TAG_NAME). Wenn Sie Regex für ein Tag verwenden möchten, z. Wenn Sie alle Tags ausblenden möchten, beginnt dies mit "asd". Anschließend fügen Sie (?! (^ asd)) zu dieser "Liste" von Tags hinzu.
Drusantia

11

Deklarieren Sie zuerst Ihre TAG-Namen in Ihrem Code, z

private static final String TAG = "MainTagName";

Fügen Sie dann Protokollanweisungen hinzu, in denen Sie etwas ausgeben möchten

Log.d(TAG, "Activity created");

Klicken Sie gemäß free3dom im zweiten Beitrag auf der Registerkarte logcat auf die Dropdown-Liste Filter und dann auf Filterkonfiguration bearbeiten.

In diesem Beispiel verwenden wir die Option " Protokoll-Tag" (Regex) , um Protokollnachrichten für einen der drei übereinstimmenden Tag-Namen mithilfe der Pipe | anzuzeigen Trennzeichen (ohne Leerzeichen):

MainTagName|SomeTagName|SomeOtherTagName

2
Ich erhalte keine Logcat-Ausgabe, wenn ich | verwende um die beiden Tags zu trennen (Android Studio 1.2)
Jemand irgendwo

2
@SomeoneSomewhere Stellen Sie sicher, dass der Name Ihres TAG mit dem ersten Parameter in der Log-Anweisung übereinstimmt. Stellen Sie sicher, dass zwischen den Tag-Namen und der Pipe keine Leerzeichen stehen, z. B. tag1 | tag2. Stellen Sie sicher, dass Sie tatsächlich den Befehl tag ausführen, indem Sie Ihren Code debuggen. Überprüfen Sie, ob Ihre Protokollstufe in der Dropdown-Liste Protokollstufe im Logcat-Fenster auf Debug oder Verbose eingestellt ist.
HostMyBus

2
Ich habe alle möglichen Kombinationen ausprobiert. Meins ist fehlgeschlagen, weil ich meinen Filter mit Leerzeichen und dem | hatte wie "Tag1 | Tag2". Diese Antwort gefunden und Leerzeichen entfernt und es funktioniert perfekt. Vielen Dank!
Raddevus

5

Ich hatte Probleme beim Einschalten der Filter in Logcat. Um die Filter in Android Studio 3.2 anzuzeigen, müssen Sie den Floating-Modus ein- und ausschalten, damit die Filter wieder angezeigt werden.

Geben Sie hier die Bildbeschreibung ein


3

Eine Alternative, die für mich funktioniert, ist die Auswahl der Show only selected applicationOption im Filtermenü:

Geben Sie hier die Bildbeschreibung ein


Irgendeine Idee, wann die Option "Firebase" eintraf? Ich habe es heute zum ersten Mal gesehen (nachdem ich mich ein Alter lang gefragt hatte, warum meine App nicht mehr protokolliert wurde).
Richard Le Mesurier

Ich hatte keine Ahnung, dass es überhaupt da war.
Ojonugwa Jude Ochalifu

1
Ich auch nicht, aber ich hatte es ausgewählt (ohne es zu wissen) und das verschwendete viel Zeit. Danke trotzdem
Richard Le Mesurier

2

Ich weiß nicht, ob die Bilder in der anderen Antwort alt sind oder ob mir etwas gefehlt hat, aber hier ist ein aktualisiertes Bild.

Klicken Sie unten auf die Registerkarte Android Monitor und stellen Sie sicher, dass die Registerkarte Logcat ausgewählt ist. Geben Sie dann ein, was Sie filtern möchten . Ich habe meine mit meinem Tag-Namen gefiltert TAG.

Geben Sie hier die Bildbeschreibung ein


2

Nur um meinen eigenen Fehler hinzuzufügen:

Stellen Sie sicher, dass Sie bei Verwendung des Emulators und eines realen Geräts in der Dropdown-Liste links über der Registerkarte logcat debuggen, um zu dem Gerät zu wechseln, das Sie debuggen.


1

Siehe diese https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

Erstellen Sie einfach einen LogCat-Filter und fügen Sie unter String einen Eintrag in "LogTag" ein, der dann die Systemzeilen ignoriert

^(?!.*(BtGatt|dalvik|Environment|DataRouter|FA|art|Wifi|ServiceManager|Atfwd|tnet|MDnsDS|Download|Bluetooth|slim|QSEECOMAPI|WVCdm|QC-time|sensors|nanohub|Drm|Babel|Dropbox|gsamlab|Cryptd|Vold|QC_|Conscrypt|Dns|sound|NetWork|OpenGL|TLog|GMPM|Microphone|Process|Dynamite|cr_|VideoCapabilities|libEGL))
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.