Aprende a loguear con Android usando Log y toString

En este post voy a mostrar algunos tips y recomendaciones para depurar nuestras apps y loguear mensajes en Android usando los métodos estáticos de Log, el Logcat de Android Studio y los métodos toString de las clases.

La etiqueta de Log

Es una buena práctica definir una etiqueta de log en nuestras actividades (Activities) o fragmentos en donde queremos depurar. Por ejemplo, veamos un fragmento que estoy programando:

La parte importante es la definición de la etiqueta o tag para loguear. Aunque al inicio pensemos que es más fácil loguear sin etiqueta conforme pase el tiempo y agreguemos clases nos daremos cuenta de que estábamos equivocados.

Si te fijas, la etiqueta tiene el nombre de la clase, actividad o fragmento. Recomiendo dejarla así y definirla siempre tomando en cuenta el nombre de la clase en la que estamos.

Por favor, implementa toString

Es buena práctica definir el método toString de una clase en Java, pues así podemos saber su estado. Veamos esta clase:

No tiene el método toString, y no pasa nada si no lo definimos, pero al querer conocer el estado de la clase no podremos saberlo.

En cambio, si lo implementamos e imprimimos el valor de cada propiedad tendremos más datos al depurar y loguear.

No te preocupes por escribir el código tú mismo; Android Studio provee una manera de insertar el método. Ve a tu clase y presiona Alt + Insertar. Ahí selecciona toString:

Generar método toString

Generar método toString

En la siguiente ventana selecciona los campos que deseas devolver cuando el método sea llamado. Recomiendo seleccionar todos.

Seleccionar campos para mostrar

Seleccionar campos para mostrar

Ahora se habrá escrito el código necesario, no tuvimos que hacer nada manualmente. Más abajo verás por qué hacemos esto.

Método generado por Android Studio

Método generado por Android Studio

Es momento de loguear

Nada de lo de arriba es estrictamente necesario, pero ahora verás por qué lo hicimos. Como regla general recuerda:

  1. Definir la etiqueta del log en todas tus clases en donde vayas a loguear
  2. Definir el método toString de tus clases

Ahora sí, para loguear importa la clase:

import android.util.Log;

Después puedes llamar a muchos métodos de Log pero los que más destacan son d y e. El método Log.d es para debug y el de Log.e es para error.

La forma de llamar es:

Log.d(etiqueta, mensaje);

Lo que hicimos antes va a brillar ahora. Por ejemplo, si quieres mostrar el estado del Lugar para visitar harías esto:

Log.d(ETIQUETA_LOG, "El lugar es:" + lugar.toString());

Esa sintaxis también aplica para Log.e y los demás métodos.

Monitor de Android

¿En dónde están los mensajes que imprimimos? ahora lo sabremos. Cuando ya hayas ejecutado la app y tu dispositivo esté conectado por cable o de manera inalámbrica abre el Logcat.

Logcat de Android Studio

Logcat de Android Studio

En el punto 1 tenemos el dispositivo. En el 2 puedes seleccionar la app que vas a depurar. En el 3 hay que seleccionar el tipo de mensajes que queremos ver. Si usamos Log.d deben ser debug, si es Log.e los de error.

En caso de que tu app tenga errores (no impresos por ti específicamente) siempre se encontrarán en la categoría de Error.

El punto 4 permite buscar ya sea por mensaje o por etiqueta. Ahí puedes escribir la etiqueta (aquí vemos su uso) y ver los mensajes de la clase que te interesa.

Finalmente en el paso 5 vemos lo que hay en el Log, lo cual es el lugar con todas sus propiedades.

Conclusión

Esto viene siendo el console.log o el System.out.println de Android. Gracias a esto podemos saber lo que está pasando y también podemos conocer qué errores se están ocasionando en nuestra app.

Te invito a leer más tutoriales de Android en mi blog.

Aprende a loguear con Android usando Log y toString

Por parzibyte Tiempo de lectura: 3 min
0