Cómo ver registros con Logcat

La ventana Logcat de Android Studio te ayuda a depurar tu app, ya que muestra registros de tu dispositivo en tiempo real, por ejemplo, los mensajes que agregaste a tu app con la clase Log, mensajes de servicios que se ejecutan en Android o mensajes del sistema, como cuando se produce la recolección de elementos no utilizados. Si la app genera una excepción, Logcat muestra un mensaje y, a continuación, el seguimiento de pila asociado que contiene los vínculos a la línea de código.

Comienza a usar la ventana Logcat

Para ver los mensajes de registro de tu app, haz lo siguiente:

  1. En Android Studio, compila y ejecuta tu app en un dispositivo físico o emulador.
  2. Selecciona View > Tool Windows > Logcat en la barra de menú.

De forma predeterminada, Logcat se desplaza hasta el final. Si haces clic en la vista de Logcat o te desplazas hacia arriba con la rueda del mouse, se desactivará esta función. Para volver a activarla, haz clic en Scroll to the End Ícono de Scroll to the End en la barra de herramientas. También puedes usar la barra de herramientas para borrar, pausar o reiniciar Logcat.

IU de la ventana Logcat

Figura 1: Logcat da formato a los registros para facilitar el análisis de información útil, como etiquetas y mensajes, y la identificación de diferentes tipos de registros, como advertencias y errores.

Cómo leer registros

Cada registro tiene una fecha, una marca de tiempo, un ID de proceso y de subproceso, una etiqueta, un nombre de paquete, una prioridad y un mensaje asociados. Las diferentes etiquetas tienen un color único que ayuda a identificar el tipo de registro. Cada entrada de registro tiene una prioridad de FATAL, ERROR, WARNING, INFO, DEBUG o VERBOSE.

Por ejemplo, el siguiente mensaje de registro tiene la prioridad DEBUG y una etiqueta ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

Configura la vista de registro

En la vista de registro estándar, se muestran la fecha, el proceso de tiempo y el ID del subproceso, la etiqueta, el nombre del paquete, la prioridad y el mensaje asociados a cada registro. De forma predeterminada, las líneas del mensaje no se incluyen en la vista de registro, pero puedes usar la opción Soft-Wrap Ícono de Soft-Wrap de la barra de herramientas de Logcat.

Puedes cambiar a la vista Compact con menos datos de visualización. Para ello, haz clic en Configure Logcat Formatting Options desde barra de herramientas Logcat.

Para configurar aún más la información que deseas que se muestre, selecciona Modify Views y elige si quieres ver la marca de tiempo, las etiquetas, los IDs de los procesos o los nombres de los paquetes que se muestran.

Cómo cambiar el esquema de colores

Para cambiar el esquema de colores, navega a Android Studio > Settings > Editor > Color Scheme. Para cambiar el esquema de colores de tu vista de registro, selecciona Android Logcat. Para cambiar el esquema de colores de tu filtro, selecciona Logcat Filter.

Parámetros de configuración adicionales

Para ver parámetros de configuración adicionales, navega a Android Studio > Settings > Tools > Logcat. Desde allí, puedes elegir el tamaño del búfer del ciclo Logcat, el filtro predeterminado para las nuevas ventanas de Logcat y si deseas agregar filtros del historial al autocompletado.

Usa Logcat en varias ventanas

Las pestañas te ayudan a cambiar fácilmente entre diferentes dispositivos o consultas. Puedes hacer clic en New Tab Ícono de New Tab para crear varias pestañas de Logcat. Si haces clic con el botón derecho en una pestaña, podrás cambiarle el nombre y reorganizarla.

Además, puedes dividir la vista dentro de una pestaña para ayudarte a comparar con más facilidad entre dos conjuntos de registros. Para crear una división, haz clic con el botón derecho en la vista de registro o haz clic en la opción Split Panels de la barra de herramientas y selecciona Split right o Divide. Para cerrar una división, haz clic con el botón derecho y selecciona Close. Cada división te permite establecer su propia conexión de dispositivo, opciones de vista y consulta.

Varias ventanas de Logcat Figura 2: Divide las ventanas Logcat en Android Studio.

En la barra de herramientas de Logcat, puedes desplazarte hasta el final de los registros o puedes hacer clic en una línea en particular para mantener visible esa línea.

En Android Studio, puedes generar búsquedas de pares clave-valor directamente desde el campo de búsqueda principal. Este sistema de consultas proporciona la precisión de lo que deseas consultar y también excluye registros según los pares clave-valor. Si bien tienes la opción de usar expresiones regulares, no tienes que depender de ellas para las consultas. Para ver sugerencias, presiona Ctrl + Space en el campo de consulta.

Lista de sugerencias en el campo de consulta Figura 3: Presiona Ctrl + Space en el campo de consulta para ver una lista de consultas sugeridas.

Estos son algunos ejemplos de las claves que puedes usar en tu consulta:

  • tag: Coincide con el campo tag de la entrada de registro.
  • package: Coincide con el nombre del paquete de la app de registro.
  • process: Coincide con el nombre del proceso de la app de registro.
  • message: Coincide con la parte del mensaje de la entrada de registro.
  • level: Coincide con el nivel de registro grave especificado o con uno más alto, por ejemplo, DEBUG.
  • age: Coincide si la marca de tiempo de la entrada es reciente. Los valores se especifican como un número seguido de una letra que denota la unidad de tiempo: s para segundos, m para minutos, h para horas y d para días. Por ejemplo, age: 5m filtra solo los mensajes que se registraron en los últimos 5 minutos.

Negación y expresiones regulares

Los siguientes campos admiten la negación y la coincidencia de expresiones regulares: tag, package, message y line.

La negación se expresa anteponiendo un - al nombre del campo. Por ejemplo, -tag:MyTag coincide con entradas de registro cuyo tag no contiene la cadena MyTag.

La coincidencia de expresiones regulares se expresa cuando se agrega un ~ al nombre del campo. Por ejemplo, tag~:My.*Tag.

Se pueden combinar los modificadores de expresión y de expresión regular. Por ejemplo, -tag~:My.*Tag.

Operadores lógicos y paréntesis

El lenguaje de consulta es compatible con los operadores AND y OR, que se expresan entre & y |, y los paréntesis. Por ejemplo:

(tag:foo | level:ERROR) & package:mine

Ten en cuenta que se aplica la prioridad de operador normal, por lo que sucede lo siguiente:

tag:foo | level:ERROR & package:mine

Se evalúa de la siguiente manera:

tag:foo | (level:ERROR & package:mine)

Operadores lógicos implícitos

Si no se aplican operadores lógicos, el lenguaje de consulta evalúa de forma automática varios términos de filtro key-value no negados con la misma clave que una OR y todo lo demás con un AND.

Por ejemplo:

tag:foo tag:bar package:myapp

Se evalúa de la siguiente manera:

(tag:foo | tag:bar) & package:myapp

Pero:

tag:foo -tag:bar package:myapp

Se evalúa de la siguiente manera:

tag:foo & -tag:bar & package:myapp

Si varios términos de consulta están separados por espacios en blanco sin un operador lógico, se tratan como AND con una prioridad baja. Por ejemplo, el término foo bar tag:bar1 | tag:bar2 es equivalente a 'foo bar' & (tag: bar1 | tag: bar2).

Consultas especiales

package:mine

La clave de paquete admite un valor especial mine. Este valor especial coincide con cualquier nombre de paquete que se encuentre en el proyecto abierto.

level

La consulta level coincide con el nivel de registro del mensaje de Logcat, en el que el nivel de entrada de registro es mayor o igual que el nivel de consulta.

Por ejemplo, level:INFO coincide con cualquier entrada de registro con un nivel de registro de INFO, WARN, ERROR o ASSERT. El nivel no distingue mayúsculas de minúsculas. Los niveles válidos son VERBOSE, DEBUG, INFO, WARN, ERROR y ASSERT.

age

La consulta age coincide con las entradas según su marca de tiempo y tiene el formato age:<number><unit>, donde

  • <number> es un número entero
  • <unit> es uno de s, m, h y d (segundos, minutos, horas y días).

En la siguiente lista, la consulta age coincide con los mensajes de registro que tienen una marca de tiempo en el rango descrito por el valor. Por ejemplo, la consulta age:5m hace coincidir las entradas con una marca de tiempo no antes de 5 minutos atrás.

age:30s
age:5m
age:3h
age:1d

Ten en cuenta que la marca de tiempo se compara con la marca de tiempo del host, no con el dispositivo conectado. Si la hora del dispositivo no está configurada correctamente, es posible que esta consulta no funcione como se espera.

Clave is

Puedes usar la clave is de la siguiente manera:

  • is:crash coincide con las entradas de registro que representan una falla de la aplicación (nativa o Java).
  • is:stacktrace coincide con las entradas de registro que representan lo que parece un seguimiento de pila de Java, sin importar el nivel de registro.

Clave name

La clave name te permite proporcionar un nombre único a un filtro guardado para que se pueda identificar con facilidad en el menú desplegable del historial del filtro. Aunque no recibas un error por especificar name más de una vez, el IDE solo usará el último valor especificado para name en la consulta.

Visualiza el historial de consultas

Puedes ver tu historial de consultas si haces clic en Show history Ícono de filtro junto al campo de consulta. Si deseas marcar una consulta para que permanezca en la parte superior de la lista en todos tus proyectos de Studio, haz clic en la estrella que se encuentra a su lado. También puedes usar la clave name: para que las búsquedas favoritas sean más fáciles de reconocer. Para obtener más información, lee Consultas especiales.

IU para marcar una consulta como favorita

Figura 4: Para marcar una consulta como favorita, haz clic en la estrella junto a ella.

Seguimiento de los registros de fallas o reinicios de la app

Cuando Logcat detecte que el proceso de tu app se detuvo y se reinició, muestra un mensaje en el resultado, como PROCESS ENDED y PROCESS STARTED. Cuando se reinicia Logcat, se conserva la configuración de tu sesión, como divisiones de pestañas, filtros y opciones de vista, para que puedas continuar con tu sesión fácilmente.

Ventana Logcat para fallas de la app

Figura 5: Cuando se reinicia el proceso de tu app, Logcat imprime un mensaje que indica que el proceso finalizó y, luego, se inició.