120 votes

Comment filtrer le logcat Android par application ?

Comment filtrer la sortie logcat d'Android par application ? J'en ai besoin parce que lorsque j'attache un appareil, je ne peux pas trouver la sortie que je veux à cause du spam des autres processus.

45voto

David Olsson Points 3861

Edit : L'original est ci-dessous. Quand un Android Studio n'existait pas. Mais si vous voulez filtrer sur l'ensemble de votre application, j'utiliserais pidcat pour l'affichage du terminal ou Android Studio. En utilisant pidcat au lieu de logcat alors les tags n'ont pas besoin d'être l'application. Vous pouvez simplement l'appeler avec pidcat com.your.application

Vous devriez utiliser votre propre étiquette, regardez : http://developer.Android.com/reference/Android/util/Log.html

Comme.

Log.d("AlexeysActivity","what you want to log");

Et ensuite, quand vous voulez lire le journal, utilisez>

adb logcat -s AlexeysActivity 

Cela permet de filtrer tout ce qui n'utilise pas la même balise.

36voto

Selon http://developer.Android.com/tools/debugging/debugging-log.html :

Voici un exemple d'expression de filtre qui supprime tous les messages de journal à l'exception de ceux qui ont l'étiquette "ActivityManager", avec une priorité "Info" ou supérieure, et tous les messages de journal avec l'étiquette "MyApp", avec une priorité "Debug" ou supérieure :

adb logcat ActivityManager:I MyApp:D *:S

Le dernier élément de l'expression ci-dessus, *:S, définit le niveau de priorité de toutes les balises sur "silent", garantissant ainsi que seuls les messages de journal avec "View" et "MyApp" sont affichés.

  • V - Verbose (priorité la plus basse)
  • D - Débogage
  • I - Info
  • W - Avertissement
  • E - Erreur
  • F - Fatal
  • S - Silencieux (priorité la plus élevée, sur lequel rien n'est jamais imprimé)

20voto

Shad Points 765

Je travaille sur Android Studio, il y a une belle option pour obtenir le message en utilisant le nom du paquet. Dans "Edit Filter Configuration", vous pouvez créer un nouveau filtre en ajoutant le nom de votre paquet dans "by package name".

enter image description here

10voto

Stephen Donecker Points 424

Supposons que votre application nommée MyApp contienne les composants suivants.

  • MonActivité1
  • MonActivité2
  • MonActivité3
  • Mon service

Afin de filtrer la sortie de l'enregistrement de votre application MyApp en utilisant logcat, vous devez taper ce qui suit.

adb logcat MyActivity1:v MyActivity2:v MyActivity3:v MyService:v *:s

Cependant, cela vous oblige à connaître les noms TAG de tous les composants de votre application plutôt que de filtrer en utilisant le nom de l'application MyApp. Voir logcat pour les détails.

Une solution pour permettre le filtrage au niveau de l'application serait d'ajouter un préfixe à chacun de vos TAG uniques.

  • MonAppActivité1
  • MonAppActivité2
  • MonAppActivité3
  • MonServiceApp

Il est maintenant possible d'effectuer un filtre joker sur la sortie de logcat en utilisant le préfixe TAG.

adb logcat | grep MyApp

Le résultat sera la sortie de l'ensemble de l'application.

7voto

Gilang Jalu Points 94

Lorsque nous obtenons une erreur de notre application, Logcat affiche automatiquement le filtre de session. Nous pouvons créer un filtre de session par nous-mêmes. Il suffit d'ajouter un nouveau filtre Logcat, de remplir le formulaire de nom de filtre. Ensuite, remplissez le nom de l'application avec votre paquet d'application. (par exemple : mon application est "Adukan" et le paquet est "com.adukan", donc je remplis le nom de l'application avec le paquet "com.adukan").

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X