Come filtrare logcat in Android Studio?


96

Nel mio logcat c'è troppo output, quindi vorrei filtrarlo usando alcune parole chiave, in pratica visualizzando solo l'output contenente le parole chiave. C'è un modo per farlo in Android Studio tramite l'interfaccia utente?



no, sto chiedendo come filtrare i messaggi per parola chiave.
Alessandro Roaro

a partire da Android Studio ver 0.4.5 riceverai messaggi solo dall'app in esecuzione. 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

Risposte:


107

Ci sono due modi per farlo, entrambi si trovano nella scheda Android nella parte inferiore dell'IDE (dove viene visualizzato l'output di logcat).

Innanzitutto, puoi semplicemente digitare qualcosa nella casella di ricerca in alto e dovrebbe filtrare solo i messaggi contenenti il ​​testo digitato.

In secondo luogo, puoi eseguire il filtraggio avanzato facendo clic sul menu a discesa in alto a destra, che dovrebbe visualizzare Nessun filtro per impostazione predefinita e scegliere Edit Filter Configuratione specificare cosa filtrare. Usando questo metodo salvi anche i filtri e puoi riutilizzarli selezionandoli nel menu a tendina.

Immagine dello schermo:
Cerca e filtra Logcat


1
Grazie per la tua risposta. Avevo già provato il primo, ma non filtra l'output non rilevante. Ri: la seconda opzione, sfortunatamente non riesco a vedere il menu a tendina, quale versione stai usando?
Alessandro Roaro

1
Sto usando la v0.3.5 ... ne ho aggiunto uno screenshot alla risposta.
free3dom

1
Ho appena notato questo mentre facevo lo screenshot, c'è ANCORA un altro modo per filtrare. Sul lato sinistro (proprio accanto alle schede) c'è un'icona con frecce verdi: può essere attivata / disattivata per visualizzare solo logcat dal processo selezionato nell'elenco :)
free3dom

Grazie, non avevo quei filtri nella mia versione (0.3.2)
Alessandro Roaro

Nessun problema! Suppongo che sia stato aggiunto in v0.3.3 / 4 quindi. Android Studio migliora con ogni versione :)
free3dom

81

Quello che faccio è fare clic con il pulsante destro del mouse su una linea che non mi piace e selezionare "Piega le linee come questa"inserisci qui la descrizione dell'immagine


9
Wow grande!! Vorrei saperlo prima!
miva2

7
Questa dovrebbe essere la risposta.
rallegrato il

2
Solo questo risolve il mio diluvio di genmony su Android Studio logcat, grazie.
Florida,

3
Stupito non l'ho mai notato prima. Buona scoperta!
dm78

1
ok capito MrGreen (basta fare doppio clic sulla voce di colore verde con testo: "n chiamate interne")
Aydin K.

53

Come ha detto @ free3dom, puoi selezionare il processo da cui desideri ricevere i logcats. Ecco lo screenshot.

Immagine dello schermo


2
Grazie per aver aggiunto questo. È bello averlo qui per tutti e l'ho menzionato solo nei commenti :)
free3dom

39
Bella anche la grafica ;-)
Gerard

1
a partire da Android Studio ver 0.4.5, riceverai messaggi solo dall'app in esecuzione. 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 per tre premere questo su "Mostra solo i registri del processo selezionato"
lujop

Ho un altro problema, quando applico il filtro dalla configurazione del filtro, per un particolare pacchetto, logcat diventa vuoto.
Bhupesh

17

HO REALIZZATO UN VIDEO TUTORIAL PER MOSTRARVI COME = https://youtu.be/xw2qE5ko_9I

Dai un nome al tuo registro. Ho chiamato il mio "wawa".

inserisci qui la descrizione dell'immagine

In Android Studio, vai su Android-> Modifica configurazioni filtro

inserisci qui la descrizione dell'immagine

Quindi digita il nome che hai dato ai log. Nel mio caso, si chiama "wawa". Di seguito sono riportati alcuni esempi dei tipi di filtri che puoi eseguire. Puoi filtrare per System.out, System.err, Logs o nomi di pacchetti:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


2
C'è una regex per negarlo, al fine di nascondere i log che contengono una riga?
Hugo M. Zuleta

Non che io sappia. Se vuoi usare regex, penso che il modo migliore sia di adb nel sistema operativo Android e utilizzare Grep sul terminale Bash.
Gene

^ (?! chromium) (?! WebViewFactory) (?! zygote) .... aggiungi tag come questi che vuoi nascondere come (?! TAG_NAME). Se vuoi usare regex per un tag, ad es. vuoi nascondere tutti i tag che iniziano con "asd", quindi aggiungi (?! (^ asd)) a questo "elenco" di tag.
Drusantia

11

Prima dichiara i tuoi nomi TAG nel tuo codice es

private static final String TAG = "MainTagName";

Quindi aggiungi le istruzioni di log in cui vuoi produrre qualcosa

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

Come per free3dom nel secondo post, nella scheda logcat fare clic sul menu a discesa Filtri e quindi su Modifica configurazione filtro.

In questo esempio utilizziamo l' opzione by Log Tag (regex) per visualizzare i messaggi di log per uno qualsiasi dei tre nomi di tag corrispondenti utilizzando la pipe | separatore (senza spazi):

MainTagName|SomeTagName|SomeOtherTagName

2
Non ottengo alcun output di logcat quando utilizzo | per separare i due tag (Android Studio 1.2)
Someone Somewhere

2
@SomeoneSomewhere Assicurati che il nome del tuo TAG corrisponda al primo parametro nell'istruzione Log. Assicurati che non ci siano spazi tra i nomi dei tag e pipe, ad esempio tag1 | tag2. Assicurati di premere il comando tag eseguendo il debug del codice. Verificare che il livello di log sia impostato su Debug o Verbose nel menu a discesa Livello di log nella finestra logcat.
HostMyBus

2
Ho provato tutti i tipi di combinazioni. Il mio non è riuscito perché avevo il mio filtro con spazi e | come "Tag1 | Tag2". Ho trovato questa risposta e rimosso gli spazi e funziona perfettamente. Grazie!
raddevus

5

Ho avuto problemi ad attivare i filtri in Logcat. Per vedere i filtri in Android Studio 3.2, devi attivare e disattivare di nuovo la 'Modalità mobile' per far riapparire i filtri.

inserisci qui la descrizione dell'immagine


3

Un'alternativa che funziona per me è selezionare l' Show only selected applicationopzione nel menu del filtro:

inserisci qui la descrizione dell'immagine


Qualche idea su quando è arrivata l'opzione "Firebase"? L'ho visto per la prima volta oggi (dopo aver passato un'età a chiedermi perché la mia app non stava più registrando).
Richard Le Mesurier

Non avevo idea nemmeno che fosse lì.
Ojonugwa Jude Ochalifu

1
Nemmeno io, ma l'avevo selezionato (senza saperlo) e questo mi ha fatto perdere molto tempo. Grazie comunque
Richard Le Mesurier

2

Non so se le immagini nell'altra risposta siano vecchie o se mi mancasse qualcosa, ma ecco un'immagine aggiornata.

Fare clic sulla scheda Monitor Android in basso e assicurarsi che la scheda logcat sia selezionata. Quindi digita ciò che desideri per filtrare l'output. Ho filtrato il mio con il nome del mio tag TAG.

inserisci qui la descrizione dell'immagine


2

Solo per aggiungere il mio errore:

assicurati che quando stai usando l'emulatore e un dispositivo reale, per passare al dispositivo su cui stai eseguendo il debug nel menu a discesa a sinistra sopra la scheda logcat.


1

guarda questo https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

basta creare un filtro LogCat inserendo sotto String in "LogTag" che quindi ignorerà le linee di sistema

^(?!.*(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))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.