Mejor grabación de Android usando Timber Library

Timber es una clase de utilidad de registro basada en la clase de registro de Android. Durante el desarrollo, generalmente terminamos escribiendo muchas declaraciones de registro y antes del lanzamiento, limpiaremos las instrucciones del registro eliminándolas manualmente (aunque los registros se pueden deshabilitar en la compilación del lanzamiento). Este proceso tedioso se puede evitar fácilmente utilizando Timber.

La madera también ofrece muchas otras opciones. Veamos cómo se puede usar en nuestros proyectos para mantener mejor los registros.

  android-recaptcha -integration-safetynet-api

1. Madera

Las siguientes son algunas instrucciones de depuración impresas con la clase de registro predeterminada.

  int a = 100;
Log.e ("TAG", String.format ("Entero un valor es:% d", a));

Nombre de cadena = "Android Studio";
Log.e ("TAG", String.format ("Mi nombre es:% s", nombre));

Las mismas declaraciones anteriores se pueden imprimir usando Timber como se muestra a continuación.

  // entero
int a = 100;
Timber.d ("Entero un valor es:% d", a);

Nombre de cadena = "Android Studio";
Timber.d ("Mi nombre es:% s", nombre);
  • Aquí puede ver que el TAG no se pasa a Timber ya que detecta automáticamente la clase en la que se escribieron los registros.
  • Incluso Formateador de cadena no se utiliza para formatear la declaración, ya que Timber puede hacerlo automáticamente por usted.

2. Integración de la madera

Ahora veamos cómo integrar la biblioteca de la madera en su proyecto haciéndola disponible en todas las clases.

1 . Cree un nuevo proyecto en Android Studio desde Archivo ⇒ Nuevo proyecto y seleccione Actividades básicas de los modelos.

2 . Abra build.gradle y agregue la dependencia Timber. Butterknife es opcional aquí, pero se requiere para este ejemplo.

      // madera
    implementación "com.jakewharton.timber: madera: 4.7.1"

    // cuchillo de mantequilla
    implementación "com.jakewharton: butterknife: 8.8.1"
    AnnotationProcessor & # 39; com.jakewharton: compilador de navajas: 8.8.1 & # 39;

3 . La madera debe inicializarse tan pronto como se inicie la aplicación. Por lo tanto, la clase de aplicación sería el mejor lugar para hacerlo. Cree una nueva clase llamada MyApplication.java y extienda la clase desde la aplicación .

  • Inicialice Timber en el método onCreate plantando un nuevo árbol.
  • Aquí Timber.DebugTree () imprime los registros en modo de depuración.
  • Si desea capturar excepciones en modo de lanzamiento, puede crear otro árbol y plantarlo en modo de lanzamiento. Este paso es completamente opcional, pero si desea enviar excepciones a un servicio diferente, este es el lugar para hacerlo.
  paquete info.androidhive.timber;

importar android.app.Application;

importar info.androidhive.timber.log.ReleaseTree;
import timber.log.Timber;

clase pública MyApplication extiende la aplicación {
    @Oltrepassare
    public void onCreate () {
        super.onCreate ();

        if (BuildConfig.DEBUG) {
            Timber.plant (nuevo Timber.DebugTree ());
        } otro {
            Timber.plant (nuevo ReleaseTree ());
        }
    }
}

4 . Puede crear un árbol personalizado extendiendo la clase desde Timber.Tree . Aquí está el ejemplo de la clase ReleaseTree.java .

  paquete info.androidhive.timber.log;

importar android.util.Log;

import timber.log.Timber;

La clase pública ReleaseTree extiende Timber.Tree {
    @Oltrepassare
    registro en blanco seguro (prioridad internacional, etiqueta de cadena, mensaje de cadena, t arrojable) {
        if (priority == Log.VERBOSE || priority == Log.DEBUG) {
            regreso;
        }

        // graba tu accidente en tu favorito
        // Envío del informe de bloqueo a Firebase CrashAnalytics

        // FirebaseCrash.report (mensaje);
        // FirebaseCrash.report (nueva excepción (mensaje));
    }
}

4 . Finalmente agregue MyApplication a la etiqueta en su AndroidManifest.xml




    

    


5 . Ahora Timber está listo para usar en tu aplicación. A continuación se presentan algunos ejemplos de instrucciones de registro de madera que muestran diferentes escenarios.

  paquete info.androidhive.timber;

importar android.os.Bundle;
importar android.support.v7.app.AppCompatActivity;
importar android.support.v7.widget.Toolbar;
importar android.widget.Toast;

Cuchillo de mantequilla de importación. ButterKnife;
importar navaja de mantequilla. OnClick;
Cuchillo de mantequilla de importación.
import timber.log.Timber;

clase pública MainActivity extiende AppCompatActivity {

    desenlazar desunidor privado;

    @Oltrepassare
    Void onCreate protegido (paquete savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        unbinder = ButterKnife.bind (esto);

        Barra de herramientas barra de herramientas = findViewById (R.id.toolbar);
        setSupportActionBar (barra de herramientas);

        // booleano
        boolean isWeekend = false;
        Timber.d ("Imprime el valor booleano. Es fin de semana:% b", isWeekend);

        // número entero
        int a = 100;
        Timber.d ("Entero un valor es:% d", a);

        // flotante
        flotador pi = 3.14159f;
        Timber.d ("El valor de Pi es:% f", pi);
    }

    @OnClick (R.id.btn_log_string)
    void logMessage () {
        Timber.d ("¡Hola, Timber!");

        showToast ();
    }

    @OnClick (R.id.btn_log_exception)
    void logException () {
        tratar {
            int a = 10/0;
            Timber.d ("Valor de a:% d", a);
        } catch (Excepción e) {
            Madera.e (e);

            // o //

            Timber.e ("Excepción en operación matemática:% s", e.getMessage ());
        }

        showToast ();
    }

    showToast privado vacío () {
        Toast.makeText (getApplicationContext (), "Verifique LogCat por mensajes o errores!", Toast.LENGTH_SHORT) .show ();
    }

    @Oltrepassare
    nulo protegido en Destroy () {
        super.onDestroy ();
        unbinder.unbind ();
    }
}
¡Hola a todos! Soy fundador de androidhive y entusiasta de la programación. Mis habilidades incluyen Android, iOS, PHP, Ruby on Rails y mucho más. Si tienes alguna idea de que te gustaría que desarrolle? Hablamos: ravi@androidhive.info



Compruebe también

Mejore su experiencia de visualización de la Copa Mundial de la FIFA con estas aplicaciones

Este año, 32 naciones competirán entre sí en la Copa Mundial Masculina de la FIFA, …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *