Comment filtrer Logcat dans Android Studio?

96

Dans mon logcat, il y a trop de sortie, donc j'aimerais le filtrer à l'aide de certains mots-clés, affichant essentiellement uniquement la sortie contenant le ou les mots-clés. Existe-t-il un moyen de le faire dans Android Studio via l'interface utilisateur?

Alessandro Roaro
la source
non, je demande comment filtrer les messages par mot-clé.
Alessandro Roaro
à partir de la version 0.4.5 d'Android Studio, vous recevrez des messages de l'application en cours d'exécution uniquement. 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

Réponses:

107

Il existe deux façons de le faire, les deux se trouvent dans l'onglet Android en bas de l'EDI (où la sortie logcat est affichée).

Tout d'abord, vous pouvez simplement taper quelque chose dans la zone de recherche en haut et il ne devrait filtrer que les messages contenant le texte que vous tapez.

Deuxièmement, vous pouvez effectuer un filtrage avancé en cliquant sur la liste déroulante en haut à droite, qui devrait afficher AucunEdit Filter Configuration filtre par défaut, et en choisissant et en spécifiant sur quoi filtrer. En utilisant cette méthode, vous enregistrez également les filtres et pouvez les réutiliser en les sélectionnant dans la liste déroulante.

Capture d'écran:
Rechercher et filtrer Logcat

free3dom
la source
1
Merci pour votre réponse. J'avais déjà essayé le premier, mais il ne filtre pas la sortie non pertinente. Re: la deuxième option, malheureusement je ne peux pas voir le menu déroulant, quelle version utilisez-vous?
Alessandro Roaro
1
J'utilise la v0.3.5 ... j'ai ajouté une capture d'écran à la réponse.
free3dom
1
Je viens de remarquer cela en faisant la capture d'écran, il existe ENCORE un autre moyen de filtrer. Sur le côté gauche (juste à côté des onglets) se trouve une icône avec des flèches vertes - elle peut être activée / désactivée pour n'afficher que logcat du processus sélectionné dans la liste :)
free3dom
Merci, je n'avais pas ces filtres dans ma version (0.3.2)
Alessandro Roaro
Aucun problème! Je suppose qu'il a été ajouté dans la v0.3.3 / 4 alors. Android Studio s'améliore avec chaque version :)
free3dom
81

Ce que je fais, c'est faire un clic droit sur une ligne que je n'aime pas et sélectionner "Plier les lignes comme celle-ci"entrez la description de l'image ici

James Hackett
la source
9
Super super !! J'aimerais savoir cela plus tôt!
miva2
7
Cela devrait être la réponse.
heureux le
2
Seulement cela résout mon inondation par genymotion sur Android Studio logcat, merci.
Floride
3
Étonné de n'avoir jamais remarqué cela auparavant. Bonne trouvaille!
dm78
1
ok compris :-D (il suffit de double-cliquer sur l'entrée de couleur verte avec le texte: "n appels internes")
Aydin K.
53

Comme @ free3dom l'a dit, vous pouvez sélectionner le processus à partir duquel vous souhaitez recevoir les logcats. Voici la capture d'écran.

Capture d'écran

dmSherazi
la source
2
Merci d'avoir ajouté ceci. C'est bien de l'avoir ici pour tout le monde et je ne l'ai mentionné que dans les commentaires :)
free3dom
39
Beaux graphismes aussi ;-)
Gerard
1
à partir de la version 0.4.5 du studio android, vous recevrez des messages de l'application en cours d'exécution uniquement. 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 pour trois, appuyez sur ceci sur `` Afficher uniquement les journaux du processus sélectionné ''
lujop
J'ai un autre problème, lorsque j'applique le filtre de la configuration du filtre, pour un package particulier, logcat devient vide.
Bhupesh le
17

J'AI FAIT UN TUTORIEL VIDÉO POUR VOUS MONTRER COMMENT = https://youtu.be/xw2qE5ko_9I

Donnez un nom à votre journal. J'ai appelé le mien "wawa".

entrez la description de l'image ici

Dans Android Studio, accédez à Android-> Modifier les configurations de filtre

entrez la description de l'image ici

Tapez ensuite le nom que vous avez donné aux journaux. Dans mon cas, ça s'appelle "wawa". Voici quelques exemples des types de filtres que vous pouvez utiliser. Vous pouvez filtrer par System.out, System.err, Logs ou noms de package:

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

Gène
la source
2
Existe-t-il une expression régulière pour annuler cela, afin de masquer les journaux qui contiennent une ligne?
Hugo M. Zuleta
Pas que je sache de. Si vous souhaitez utiliser regex, je pense que le meilleur moyen est d'adb dans le système d'exploitation Android et d'utiliser Grep sur le terminal Bash.
Gene
^ (?! chrome) (?! WebViewFactory) (?! zygote) .... ajoutez des balises comme celles que vous souhaitez masquer comme (?! TAG_NAME). Si vous souhaitez utiliser regex pour une balise, par exemple. vous voulez cacher toutes les balises commençant par "asd", puis vous ajoutez (?! (^ asd)) à cette "liste" de balises.
Drusantia
11

Déclarez d'abord vos noms de TAG dans votre code, par exemple

private static final String TAG = "MainTagName";

Ensuite, ajoutez des instructions de journal où vous souhaitez afficher quelque chose

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

Comme indiqué dans free3dom dans le deuxième article, dans l'onglet logcat, cliquez sur la liste déroulante Filtres, puis sur Modifier la configuration du filtre.

Dans cet exemple, nous utilisons l' option by Log Tag (regex) pour afficher les messages de journal pour l'un des trois noms de balises correspondants à l'aide du tube | séparateur (sans espaces):

MainTagName|SomeTagName|SomeOtherTagName
HostMyBus
la source
2
Je n'obtiens aucune sortie logcat lorsque j'utilise le | pour séparer les deux balises (Android Studio 1.2)
Someone Somewhere
2
@SomeoneSomewhere Assurez-vous que le nom de votre TAG correspond au premier paramètre de l'instruction Log. Assurez-vous qu'il n'y a pas d'espaces entre les noms de balises et le tube, par exemple tag1 | tag2. Assurez-vous que vous utilisez bien la commande tag en déboguant votre code. Vérifiez que votre niveau de journal est défini sur Déboguer ou Verbose dans la liste déroulante Niveau de journal de la fenêtre logcat.
HostMyBus
2
J'ai essayé toutes sortes de combinaisons. Le mien a échoué parce que j'avais mon filtre avec des espaces et le | comme "Tag1 | Tag2". J'ai trouvé cette réponse et supprimé des espaces et cela fonctionne parfaitement. Merci!
raddevus
5

J'ai eu du mal à activer les filtres dans Logcat. Pour voir les filtres dans Android Studio 3.2, vous devez activer et désactiver à nouveau le `` Mode flottant '' pour que les filtres réapparaissent.

entrez la description de l'image ici

l'amour en direct
la source
3

Une alternative qui fonctionne pour moi est de sélectionner l' Show only selected applicationoption dans le menu des filtres:

entrez la description de l'image ici

Ojonugwa Jude Ochalifu
la source
Une idée de l'arrivée de l'option "Firebase"? Je l'ai vu pour la première fois aujourd'hui (après avoir passé un âge à me demander pourquoi mon application ne consignait plus).
Richard Le Mesurier
Je n'avais aucune idée que c'était même là.
Ojonugwa Jude Ochalifu
1
Moi non plus, mais je l'avais sélectionné (sans le savoir) et cela m'a fait perdre beaucoup de temps. Thx anyway
Richard Le Mesurier
2

Je ne sais pas si les images de l'autre réponse sont anciennes ou s'il me manquait quelque chose, mais voici une image mise à jour.

Cliquez sur l' onglet Moniteur Android en bas et assurez-vous que l' onglet Logcat est sélectionné. Tapez ensuite ce que vous voulez pour filtrer votre sortie. J'ai filtré le mien avec mon nom de tag TAG.

entrez la description de l'image ici

Suragch
la source
2

Juste pour ajouter ma propre erreur:

assurez-vous que lorsque vous utilisez l'émulateur et un appareil réel, pour basculer vers l'appareil que vous déboguez dans la liste déroulante à gauche au-dessus de l'onglet logcat.

Asimov
la source
1

voir ceci https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

il suffit de créer un filtre LogCat une insertion sous String à "LogTag" qui ignorera alors les lignes système

^(?!.*(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))
Josef Vancura
la source