web-dev-qa-db-fra.com

Filtrer la sortie dans logcat par nom

J'essaie de filtrer la sortie logcat d'un périphérique réel (pas un émulateur) par nom de balise, mais je reçois tous les messages, ce qui est un spam. Je veux juste lire les messages du navigateur qui devraient ressembler à "navigateur: " ou "webkit:", mais cela ne fonctionne pas ... Voici ce que je reçois:

actual output

146
munch

utilisez ceci:

adb logcat -s "TAGNAME"
277
sat

Au cas où quelqu'un tomberait comme moi, vous pouvez filtrer plusieurs tags en ajoutant une virgule entre eux, comme ceci:

adb logcat -s "browser","webkit"
57
aarislarsen

Une autre option consiste à définir les niveaux de journalisation pour des balises spécifiques:

 adb logcat SensorService: S PowerManagerService: S NfcService: S puissance: I Capteurs: E 

Si vous souhaitez uniquement définir les niveaux de journalisation de certaines balises, vous pouvez le faire balise par balise.

13
mkobit

Ne comptez pas sur ADB Shell, traitez-le simplement (le logcat adb) d’une sortie linux normale, puis transmettez-le à la pip:

$ adb Shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 
9

Voici comment je crée un tag:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

Vous pouvez utiliser getCannonicalName

Ici, j'ai les filtres TAG suivants:

  • any (*) Voir - VERBOSE
  • toute activité (*) - VERBOSE
  • toute balise commençant par Xyz (*) - ERREUR
  • System.out - SILENT (depuis que j'utilise Log dans mon propre code)

Voici ce que je tape en terminal:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
6
user3566154