Red de conocimiento informático - Conocimiento informático - Cómo filtrar la salida de adb logcat

Cómo filtrar la salida de adb logcat

1. Muestra solo el resultado que necesitas y ponlo en la lista blanca

La forma más sencilla es usar grep para filtrar a través de una tubería, lo que aprovecha las poderosas capacidades de coincidencia de expresiones regulares de grep. Simplemente haga coincidir una cadena en una línea, por ejemplo MyApp:

adb logcat | grep MyApp

adb logcat |

adb logcat | grep --color=auto -i myapp #Establece el color de la cadena coincidente. Consulte la ayuda de grep para obtener más configuraciones.

Si quieres ir más allá, puedes utilizar la coincidencia de expresiones regulares de grep. Por ejemplo, el ejemplo anterior coincidiría con cualquier parte de la línea MyApp; puede configurarlo para que coincida solo con la etiqueta. La salida del registro predeterminada es la siguiente, por lo que si desea cambiar el formato de salida, debe cambiar la expresión en consecuencia.

I/CacheService(665): Preparando DiskCache para todas las miniaturas.

Puedes ver que la marca es el tercer carácter al principio de una línea, así que escribe la expresión según esto:

adb logcat | grep "^..MyApp"

Basado en este formato, también puede configurarlo para que solo muestre registros con una prioridad específica y luego coincida con el primero. personaje. Por ejemplo, para mostrar solo el resultado de la etiqueta de nivel de error MyApp:

adb logcat | ^E.MyApp"

Por supuesto, también puede hacer coincidir más de uno por separándolos con | Múltiples coincidencias, usando caracteres de escape. Por ejemplo, para hacer coincidir la salida etiquetada MyApp y MyActivity:

adb logcat | .MyApp|^..MyActivity" #Utilice egrep sin escape

2. Filtrar resultados no deseados y listas negras

Utilice el mismo grep que el anterior y agregue -v. Por ejemplo, para filtrar la salida etiquetada MyApp y MyActivity:

adb logcat | ^..MiAplicación|^..MiActividad" #Utilice egrep sin caracteres de escape

3. Mostrar todos los resultados del mismo proceso

Existe una situación en la que un programa tiene varias etiquetas, y necesita generar todas las etiquetas del programa (con el mismo PID usando solo el filtrado de etiquetas

a veces también se pueden perder algunos mensajes de error, que a menudo son los mismos que el PID del programa); La idea es buscar el número PID según el nombre del paquete y luego compararlo con el

PID. Escriba el siguiente script de shell con el nombre del paquete java del programa (por ejemplo, com.android.media) como parámetro.

Ver fuente de ayuda para impresión

1#! /bin/bash

2 nombredelpaquete=$1

3 pid=`adb shell ps | grep $nombredelpaquete | awk '{print $2}'`

4 adb logcat | grep --color=auto $pid

4. La visualización a partir del registro actual

tiene un caché, por lo que si solo necesita ver el registro actual, debe borrar el anterior. registro.

adb logcat -c amp;adb logcat

5. Filtrar archivos de registro

A veces es necesario analizar los archivos de registro, por lo que aún puedes usar grep para filtrar. documento de registros. Por ejemplo, si el archivo de registro es myapp.log, debe hacer coincidir la salida etiquetada MyApp y MyActivity, luego enviarla a newmyapp.output y luego enviarla a newmyapp.log:

cat myapp.log grep | "^..MyApp\|^..MyActivity" gt; newmyapp.log

Windows recomienda el Bloc de notas, que es un bloc de notas gratuito y potente que admite la búsqueda y el reemplazo de expresiones regulares. Puede resaltar contenido coincidente y eliminar contenido no deseado.

Los consejos anteriores utilizan principalmente grep. De hecho, logcat también tiene una función de filtrado. Puede filtrar registros según etiquetas y prioridades. Consulte la documentación oficial de Android.

Leer y Escribe un diario. Si prefiere utilizar una interfaz gráfica, consulte Uso. Si prefiere utilizar una interfaz gráfica, consulte Uso de DDMS, logcat

dentro de DDMS también puede hacer esto.

Leer y escribir registros.