Filtrar salida en logcat por nombre de etiqueta


151

Estoy tratando de filtrar la salida de logcat de un dispositivo real (no un emulador) por nombre de etiqueta, pero recibo todos los mensajes, lo cual es bastante spam. Solo quiero leer mensajes del navegador que deberían ser algo como "browser: " o "webkit: ", pero no funciona ... Aquí es lo que obtengo:

salida real

Respuestas:


294

utilizar este:

adb logcat -s "TAGNAME"

77
¡Gracias! Lo anterior es equivalente a ADB Logcat *: s 'tagname'
Munch

3
¿Cómo puedo filtrar un <tagname>?
Arunabh Das

Creo que la única forma de filtrar es por niveles. Por ejemplo, si alguna aplicación está enviando correo no deseado a Depuración, configure el nivel de logcat para que solo muestre Información y niveles superiores: logcat *: I
Someone Somewhere

1
¿Es posible usar arriba con -f nombrearchivo? Digamos que mi escenario es filtrar los registros por TagName y volcarlos en un archivo de texto.
Duende verde

9
Das - "adb logcat TAGNAME: s" escuchará una etiqueta ruidosa.
Don Park

56

En caso de que alguien tropiece con esto como lo hice yo, puede filtrar varias etiquetas agregando una coma en el medio, así:

adb logcat -s "browser","webkit"

Explica dónde debo poner este código. Soy una nueva abeja Por favor explique
Zar E Ahmer

1
@Nepster Escriba eso en la terminal.
asíncrono

Si usa cygwin en Windows, puede usar grep ... y sí, esto funciona.
sgupta

12

Otra opción es establecer los niveles de registro para etiquetas específicas:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I Sensors: E

Si solo desea establecer los niveles de registro para algunas etiquetas, puede hacerlo etiqueta por etiqueta.


9

No dependa del shell ADB, simplemente trátelo (el adb logcat) una salida de Linux normal y luego pip:

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

55
Esta es una mala elección porque se envía mucho tráfico innecesario y el filtro obviamente no funcionará. Si un proceso no relacionado registra un mensaje que parece tener alguna cadena, aparecerá.
John Smith

and the filter obviously won't work, ¿has probado? Tengo y pegué mi respuesta de acuerdo con el resultado.
Siwei Shen 申思维

1
La pregunta era para Windows, donde grep no está disponible
sroskelley

1
Si usa cygwin en Windows, puede usar grep ... y sí, esto funciona.
sgupta

6

Así es como creo una etiqueta:

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

Puedes usar getCannonicalName

Aquí tengo los siguientes filtros TAG:

  • cualquiera (*) Ver - VERBOSE
  • cualquier (*) Actividad - VERBOSA
  • cualquier etiqueta que comience con Xyz (*) - ERROR
  • System.out - SILENT (ya que estoy usando Log in my own code)

Aquí lo que escribo en la terminal:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.