Filtra l'output in logcat per tagname


151

Sto cercando di filtrare l'output di logcat da un dispositivo reale (non un emulatore) in base al nome del tag, ma ricevo tutti i messaggi che sono piuttosto uno spam. Voglio solo leggere i messaggi dal browser che dovrebbero essere qualcosa come "browser: " o "webkit: ", ma non funziona ... Ecco cosa ottengo:

uscita effettiva

Risposte:


294

Usa questo:

adb logcat -s "TAGNAME"

7
Grazie! Quanto sopra è equivalente a adb logcat *: s 'tagname'
munch

3
Come posso filtrare OUT un <tagname>?
Arunabh Das,

Credo che l'unico modo per filtrare sia per livelli. Ad esempio, se alcune app eseguono lo spam come debug, imposta il livello di logcat in modo da mostrare solo informazioni e livelli superiori: logcat *: I
Someone Somewhere

1
È possibile utilizzare sopra con -f nomefile? Supponiamo che il mio scenario sia filtrare i log in base a TagName e scaricare in un file di testo.
Folletto verde

9
Das - "adb logcat TAGNAME: s" sarà un tag rumoroso.
Don Park,

56

Nel caso in cui qualcuno si imbattesse in questo come ho fatto io, puoi filtrare su più tag aggiungendo una virgola in mezzo, in questo modo:

adb logcat -s "browser","webkit"

Spiega dove devo inserire questo codice. Sono una nuova ape. Per favore, spiega
Zar E Ahmer,

1
@Nepster Digita quello nel terminale.
asincrono il

Se usi cygwin su Windows, puoi usare grep ... e sì, funziona.
sgupta,

12

Un'altra opzione è l'impostazione dei livelli di registro per tag specifici:

adcat logcat SensorService: S PowerManagerService: S NfcService: S power: I Sensori: E

Se desideri solo impostare i livelli di registro per alcuni tag, puoi farlo tag per tag.


9

Non dipendere dalla shell ADB, trattalo (adb logcat) un normale output di Linux e poi esegui il pip:

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

5
Questa è una scelta sbagliata perché viene inviato molto traffico non necessario e il filtro ovviamente non funzionerà. Se un processo non correlato registra un messaggio che presenta una stringa, appare.
John Smith,

and the filter obviously won't work, hai provato? Ho incollato la mia risposta in base al risultato.
Siwei Shen 申思维

1
La domanda era per Windows, dove grep non è disponibile
sroskelley,

1
Se usi cygwin su Windows, puoi usare grep ... e sì, questo funziona.
sgupta,

6

Ecco come creo un tag:

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

È possibile utilizzare getCannonicalName

Qui ho i seguenti filtri TAG:

  • any (*) View - VERBOSE
  • qualsiasi (*) Attività - VERBOSE
  • qualsiasi tag che inizia con Xyz (*) - ERRORE
  • System.out - SILENT (dal momento che sto usando Accedi nel mio codice)

Ecco cosa scrivo nel terminale:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
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.