El sistema de registro de eventos (logging) de Android proporciona un mecanismo para recoger y mostrar los mensajes de depuración del sistema.

La utilidad Logcat vuelca en pantalla el registro de mensajes del sistema, que incluye:

  • Mensajes de error que lanza el emulador
  • Mensajes que hayas escrito desde la aplicación usando la clase Log del paquete android.util.

La manera más cómoda de utilizar LogCat es desde el mismo entorno Eclipse. Puedes encontrar los mensajes del registro de eventos en la pestaña LogCat de la parte inferior de la ventana de Eclipse

LogCat02

En caso de que no te aparezca esa pestaña, prueba a activarla desde el menú Windows > Show View > Other > Android > LogCat.

LogCat03

Si ejecutas cualquier aplicación Android, podrás ver que en esa pestaña LogCat aparecen diversos mensajes de distintos colores que diferencian la importancia de los mensajes en función de su nivel (Level) que se muestra en la primera columna.

LogCat01

Puedes encontrar los siguientes niveles de mensajes en el registro de eventos, ordenados desde el nivel con menos prioridad hasta el de más prioridad:

  • Verbose (V)
    • Mensajes de comunicación para el usuario de la aplicación, donde se puede mostrar de manera detallada el funcionamiento de un proceso que esté realizando la aplicación.
  • Debug (D)
    • Mensaje de depuración de la aplicación destinado a su desarrollador para depurar el funcionamiento de la misma.
  • Info (I)
    • Mensaje con carácter informativo
  • Warn (W)
    • Mensaje de aviso (warning) ante un error de poca importancia que no impide la ejecución correcta de la aplicación.
  • Error (E)
    • Mensaje de error que avisa de una posible situación que impida el correcto funcionamiento de la aplicación.
  • Assert (F)
    • Mensaje de error crítico (terrible failure).

Además del nivel del mensaje, se muestra en cada columna el PID (identificador de proceso), TID (identificador de tarea), Application (nombre de la aplicación), Tag (etiqueta) y Text (texto del mensaje).

Para generar un mensaje de manera explícita desde el código de la aplicación, puedes usar los métodos que ofrece la clase Log para cada nivel de mensaje:

static int v(String tag, String msg)

static int d(String tag, String msg)

static int i(String tag, String msg)

static int w(String tag, String msg)

static int e(String tag, String msg)

Todos estos métodos disponen de un primer parámetro tag donde se debe especificar una etiqueta que posibilita agrupar los mensajes por etiquetas. Esta etiqueta es la que se muestra en la columna Tag del LogCat. En el segundo parámetro msg se debe indicar el texto del mensaje que aparecerá en la columna Text del LogCat.

Dispones además de los mismos métodos con un tercer parámetro para indicar una excepción.

Es una buena práctica asignar a la etiqueta una constante declarada en la aplicación. De esta forma se evitan errores al indicar la etiqueta:

{code}private static final String TAG_ACTIVITY = "NombreDeLaActivity";{/code}

Al hacerlo así, la llamada a uno de los métodos anteriores puedes realizarla, por ejemplo, de la siguiente manera:

{code}Log.d(TAG_ACTIVITY, "Estoy depurando la aplicación");{/code}

Como habrás podido comprobar, el LogCat puede llegar a mostrar una gran cantidad de mensajes, por lo que es habitual aplicar algún tipo de filtro o búsqueda para localizar los mensajes deseados. Para ello, en la parte superior de la utilidad puedes encontrar una barra de herramientas como la siguiente:

LogCat04

En ella puedes utilizar el cuadro de texto que ocupa casi toda la barra para buscar en el texto de los mensajes, o bien buscar usando prefijos para buscar por el PID (pid:), nombre de la aplicación (app:), etiqueta (tag:) o texto (text:). La lista desplegable permite seleccionar el nivel más bajo de prioridad de los mensajes a mostrar. Si se elige, por ejemplo, el nivel warn, se mostrarán todos los mensajes correspondientes a warn, error y assert. Los botones permiten: Guardar la lista de mensajes en un fichero de texto; Limpiar el registro; Mostrar/ocultar la vista de filtros almacenados; Bloquear el desplazamiento automático de la lista de mensajes.

La lista de filtros almacenados de la parte izquierda posibilita crear filtros por cualquier campo y tenerlos almacenados para utilizarlos en cualquier momento con sólo seleccionarlos en la lista. Dispones de los botones para añadir, eliminar y editar los filtros.

LogCat05