¿Cómo filtrar logcat en Android Studio?


96

En mi logcat hay demasiada salida, por lo que me gustaría filtrarla usando algunas palabras clave, básicamente mostrando solo la salida que contiene la (s) palabra (s) clave. ¿Hay alguna forma de hacerlo en Android Studio a través de la interfaz de usuario?



no, estoy preguntando cómo filtrar los mensajes por palabra clave.
Alessandro Roaro

a partir de la versión 0.4.5 de Android Studio, recibirá mensajes de la aplicación que se está ejecutando únicamente. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

Respuestas:


107

Hay dos formas de hacer esto, ambas están en la pestaña de Android en la parte inferior del IDE (donde se muestra la salida de logcat).

Primero, simplemente puede escribir algo en el cuadro de búsqueda en la parte superior y debería filtrar solo los mensajes que contienen el texto que escribe.

En segundo lugar, puede realizar un filtrado avanzado haciendo clic en el menú desplegable en la parte superior derecha, que debería mostrar Sin filtros de forma predeterminada, y elegir Edit Filter Configurationy especificar en qué filtrar. Con este método, también guarda los filtros y puede reutilizarlos seleccionándolos en el menú desplegable.

Captura de pantalla:
Buscar y filtrar Logcat


1
Gracias por tu respuesta. Ya había probado el primero, pero no filtra la salida no relevante. Re: la segunda opción, lamentablemente no puedo ver el menú desplegable, ¿qué versión estás usando?
Alessandro Roaro

1
Estoy usando v0.3.5 ... agregué una captura de pantalla a la respuesta.
free3dom

1
Acabo de notar esto mientras hacía la captura de pantalla, TODAVÍA hay otra forma de filtrar. En el lado izquierdo (junto a las pestañas) hay un icono con flechas verdes; se puede activar / desactivar para mostrar solo logcat del proceso seleccionado en la lista :)
free3dom

Gracias, no tenía esos filtros en mi versión (0.3.2)
Alessandro Roaro

¡No hay problema! Supongo que se agregó en v0.3.3 / 4 entonces. Android Studio está mejorando con cada versión :)
free3dom

81

Lo que hago es hacer clic derecho en una línea que no me gusta y seleccionar "Doblar líneas como esta"ingrese la descripción de la imagen aquí


9
¡¡Wow asombroso!! ¡Ojalá supiera esto antes!
miva2

7
Esta debería ser la respuesta.
Gladed

2
Solo esto resuelve mi inundación por genymotion en Android Studio logcat, gracias.
Florida

3
Asombrado, nunca me di cuenta de esto antes. ¡Buen descubrimiento!
dm78

1
ok, lo tengo :-D (simplemente haga doble clic en la entrada de color verde con el texto: "n llamadas internas")
Aydin K.

53

Como dijo @ free3dom, puede seleccionar el proceso desde el que desea recibir logcats. Aquí está la captura de pantalla.

Captura de pantalla


2
Gracias por agregar esto. Es bueno tenerlo aquí para todos y solo lo mencioné en los comentarios :)
free3dom

39
Buenos gráficos también ;-)
Gerard

1
A partir de la versión 0.4.5 de Android Studio, obtendrá mensajes de la aplicación que solo se está ejecutando. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

1
+1 para tres, presione esto en 'Mostrar solo los registros del proceso seleccionado'
lujop

Tengo otro problema, cuando aplico el filtro de la configuración del filtro, para un paquete en particular, logcat se vuelve en blanco.
Bhupesh

17

HICE UN VIDEO TUTORIAL PARA MOSTRARTE CÓMO = https://youtu.be/xw2qE5ko_9I

Dale un nombre a tu registro. Llamé al mío "wawa".

ingrese la descripción de la imagen aquí

En Android Studio, vaya a Android-> Editar configuraciones de filtro

ingrese la descripción de la imagen aquí

Luego escriba el nombre que le dio a los registros. En mi caso, se llama "wawa". A continuación, se muestran algunos ejemplos de los tipos de filtros que puede realizar. Puede filtrar por System.out, System.err, Logs o nombres de paquetes:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí


2
¿Hay una expresión regular para negar esto, con el fin de ocultar los registros que contienen una línea?
Hugo M. Zuleta

No que yo sepa. Si desea usar expresiones regulares, creo que la mejor manera es adb en el sistema operativo Android y usar Grep en Bash Terminal.
Gene

^ (?! chromium) (?! WebViewFactory) (?! zygote) .... agregue etiquetas como estas que desea ocultar como (?! TAG_NAME). Si desea utilizar expresiones regulares para una etiqueta, por ejemplo. desea ocultar todas las etiquetas que comienzan con "asd", luego agrega (?! (^ asd)) a esta "lista" de etiquetas.
Drusantia

11

Primero declare sus nombres TAG en su código, por ejemplo

private static final String TAG = "MainTagName";

Luego agregue declaraciones de registro donde desee generar algo

Log.d(TAG, "Activity created");

Según free3dom en la segunda publicación, en la pestaña logcat, haga clic en el menú desplegable Filtros y luego en Editar configuración de filtro.

En este ejemplo, estamos usando la opción de Etiqueta de registro (regex) para mostrar mensajes de registro para cualquiera de los tres nombres de etiqueta coincidentes usando la tubería | separador (sin espacios):

MainTagName|SomeTagName|SomeOtherTagName

2
No obtengo ninguna salida de logcat cuando uso el | para separar las dos etiquetas (Android Studio 1.2)
Someone Somewhere

2
@SomeoneSomewhere Asegúrese de que el nombre de su TAG coincida con el primer parámetro de la declaración de registro. Asegúrese de que no haya espacios entre los nombres de las etiquetas y la tubería, por ejemplo, etiqueta1 | etiqueta2. Asegúrese de estar presionando el comando de etiqueta al depurar su código. Verifique que su nivel de registro esté configurado en Depurar o Detallado en el menú desplegable Nivel de registro en la ventana de logcat.
HostMyBus

2
Probé todo tipo de combinaciones. El mío falló porque tenía mi filtro con espacios y el | como "Etiqueta1 | Etiqueta2". Encontré esta respuesta y eliminé espacios y funciona perfectamente. ¡Gracias!
raddevus

5

Tuve problemas para encender los filtros en Logcat. Para ver los filtros en Android Studio 3.2, debe activar y desactivar el 'Modo flotante' nuevamente para que los filtros reaparezcan.

ingrese la descripción de la imagen aquí


3

Una alternativa que me funciona es seleccionar la Show only selected applicationopción en el menú de filtro:

ingrese la descripción de la imagen aquí


¿Alguna idea de cuándo llegó la opción "Firebase"? Lo vi por primera vez hoy (después de pasar una edad preguntándome por qué mi aplicación ya no registraba).
Richard Le Mesurier

Ni siquiera tenía idea de que estaba allí.
Ojonugwa Jude Ochalifu

1
Yo tampoco, pero lo había seleccionado (sin saberlo) y eso fue una pérdida de tiempo. Thx de todos modos
Richard Le Mesurier

2

No sé si las imágenes de la otra respuesta son antiguas o si me faltaba algo, pero aquí hay una imagen actualizada.

Haga clic en la pestaña Monitor de Android en la parte inferior y asegúrese de que la pestaña Logcat esté seleccionada. Luego escriba lo que desee para filtrar su salida. Filtre el mío con mi nombre de etiqueta TAG.

ingrese la descripción de la imagen aquí


2

Solo para agregar mi propio error:

asegúrese de que cuando esté usando el Emulador y un dispositivo real, para cambiar al dispositivo que está depurando en el menú desplegable de la izquierda sobre la pestaña logcat.


1

ver esto https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

simplemente cree el filtro LogCat un inserto debajo de String a "LogTag" que luego ignorará las líneas del sistema

^(?!.*(BtGatt|dalvik|Environment|DataRouter|FA|art|Wifi|ServiceManager|Atfwd|tnet|MDnsDS|Download|Bluetooth|slim|QSEECOMAPI|WVCdm|QC-time|sensors|nanohub|Drm|Babel|Dropbox|gsamlab|Cryptd|Vold|QC_|Conscrypt|Dns|sound|NetWork|OpenGL|TLog|GMPM|Microphone|Process|Dynamite|cr_|VideoCapabilities|libEGL))
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.