Android

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:


public class AgregarLugaresFragmento extends Fragment {
    // Aquí la etiqueta:
    private static final String ETIQUETA_LOG = "AgregarLugaresFragmento";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Log.d(ETIQUETA_LOG, "Aquí vamos de nuevo");
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_agregar_lugar_fragment_paso2, container, false);
    }
}

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:

public class LugarParaVisitar {
    public static String TIPO_PUBLICO = "publico";
    public static String TIPO_PRIVADO = "privado";

    private String direccion;
    private LatLng cordenadas;
    private String tipo;

    public LugarParaVisitar() {
    }

    public LugarParaVisitar(String direccion, LatLng cordenadas, String tipo) {
        this.direccion = direccion;
        this.cordenadas = cordenadas;
        this.tipo = tipo;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public LatLng getCordenadas() {
        return cordenadas;
    }

    public void setCordenadas(LatLng cordenadas) {
        this.cordenadas = cordenadas;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

}

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

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

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

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

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.