388 votes

Filtrer LogCat pour obtenir uniquement les messages de Ma demande dans Android?

J'ai remarqué que lorsque j'utilise Logcat avec Eclipse avec ADT pour Android, je reçois aussi des messages de nombreuses autres applications. Existe-t-il un moyen de filtrer cela et d'afficher uniquement les messages de ma propre application. Je vous remercie.

403voto

Tom Mulcahy Points 981

Utilisez ps / grep / cut pour récupérer le PID, puis grep pour les entrées logcat avec ce PID. Voici la commande que j'utilise:

 adb logcat | grep `adb shell ps | grep com.example.package | cut -c10-15`
 

(Vous pourriez améliorer la regex plus loin pour éviter le problème théorique des lignes de journaux sans rapport contenant le même nombre, mais cela n'a jamais été un problème pour moi)

302voto

shanet Points 3026

Les noms de paquets sont garantis d'être unique, de sorte que vous pouvez utiliser l' Log fonction avec la balise comme votre nom de paquet, puis filtrer par nom du package:

Log.<log level>("<your package name>", "message");

adb -d logcat <your package name>:<log level> *:S

-d dénote un réel de l'appareil et de l' -e dénote un émulateur. Si il n'y a plus de 1 émulateur cours d'exécution, vous pouvez utiliser -s emulator-<emulator number> (par exemple, -s emulator-5558)

Exemple: adb -d logcat com.example.example:I *:S

Ou si vous utilisez System.out.print pour envoyer des messages dans le journal, vous pouvez utiliser adb -d logcat System.out:I *:S pour afficher uniquement les appels Système..

Vous pouvez trouver tous les niveaux de journal, et plus d'info ici: http://developer.android.com/guide/developing/tools/adb.html#logcat

http://developer.android.com/reference/android/util/Log.html

EDIT: il Semble bien que j'ai sauté le pistolet un peu et viens de réaliser que vous posiez des questions sur logcat dans Eclipse. Ce que j'ai posté ci-dessus est pour l'utilisation de logcat par le biais de la bad à partir de la ligne de commande. Je ne sais pas si les mêmes filtres de transfert dans Eclipse.

54voto

beryllium Points 18138

Ajouter un filtre

Ajouter un filtre

Spécifiez les noms

entrez la description de l'image ici

Choisissez votre filtre

entrez la description de l'image ici

19voto

Inder Kumar Rathore Points 13538

Pour moi cela fonctionne dans mac Terminal
Allez dans le dossier où vous avez adb puis tapez la commande ci-dessous dans le terminal

 ./adb logcat MyTAG:V AndroidRuntime:E *:S
 

Ici, il va filtrer tous les journaux de MyTAG et AndroidRuntime

12voto

Paschalis Points 1732

Il semble que je ne peux pas répondre à somebodys réponse, donc je vais poster une nouvelle réponse. 'J'aimerais commentaire sur Tom Mulcahy réponse, juste pour montrer comment cette commande devrait changer de travail sur la plupart des appareils, car la commande adb shell ps PID colonne varie d'un appareil à l'autre

Les commandes ci-dessous ne peut fonctionner que si vous avez connecté plusieurs appareils avec la bad. si vous avez besoin de l'id de l'appareil. si vous n'avez pas plusieurs appareils, juste ne pas inclure les crochets '[', ']')

  1. Pour trouver la colonne de pid, tapez:

    bad [-s DEVICE_ID] shell ps | head-n 1

Maintenant l'enregistrer dans vos cerveaux cache, le numéro de colonne PID. La numérotation commence à partir de 1.

  1. Puis tapez la commande suivante:

    bad [-s DEVICE_ID] logcat | grep $(bad [-s DEVICE_ID] shell ps | grep "com.exemple" | awk -F" "' {print $COLONNE}')

NOTE: au-dessus de remplacer la COLONNE, la colonne que vous avez trouvé dans l'étape 1

NOTE2: chaque fois que vous exécutez votre application, vous devez exécuter de nouveau la commande ci-dessus, parce que l'application reçoit un nouveau PID de l'OS.

*Pour certaines raison de la substitution de commande n'a pas été figurant dans ici, je l'ai donc remplacé .. $( .. )

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