Seguridad

Mejor registro de Android con Timber Library

Timber es una clase de utilidad de registro que se basa en la clase de registro de Android. Durante el desarrollo, normalmente escribimos muchas directivas de registro y las limpiamos antes de publicarlas eliminándolas manualmente (aunque los registros se pueden deshabilitar en la versión de la versión). Este largo proceso se puede evitar fácilmente utilizando madera.

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

1. Madera

A continuación se muestran algunas declaraciones de depuración impresas con la clase de registro estándar.

int a = 100;
Log.e("TAG", String.format("Integer a value is: %d", a));

String name = "Android Studio";
Log.e("TAG", String.format("My name is: %s", name));

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

// integer
int a = 100;
Timber.d("Integer a value is: %d", a);

String name = "Android Studio";
Timber.d("My name is: %s", name);
  • Puedes encontrar eso aquí ETIQUETA no se pasará a Timber, ya que detectará automáticamente la clase en la que se escribieron los registros.
  • igualmente Formateador de cadenas no se utiliza para formatear la instrucción, ya que Timber puede hacerlo automáticamente.

2. Integra la madera

Ahora veamos cómo incorporar la biblioteca Timber en su proyecto y ponerla a disposición en cada clase.

1. Crea un nuevo proyecto en Android Studio Archivo ⇒ nuevo proyecto y seleccione Actividad basica de plantillas.

2. abrir build.gradle y agregue la dependencia de madera. El cuchillo de mantequilla es opcional aquí, pero es necesario para este ejemplo.

    // timber
    implementation 'com.jakewharton.timber:timber:4.7.1'

    // butter knife
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

3. Timber debe inicializarse tan pronto como se inicie la aplicación. Por lo tanto, la clase de aplicación sería el mejor lugar para hacer esto. Crea una nueva clase llamada MyApplication.java y ampliar la clase de solicitud.

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

import android.app.Application;

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

public class MyApplication extends Application 
    @Override
    public void onCreate() 
        super.onCreate();

        if (BuildConfig.DEBUG) 
            Timber.plant(new Timber.DebugTree());
         else 
            Timber.plant(new ReleaseTree());
        
    

Cuarto. Puede crear un árbol personalizado expandiendo la clase de Madera.Árbol. Aquí está el ejemplo de ReleaseTree.java Clase.

package info.androidhive.timber.log;

import android.util.Log;

import timber.log.Timber;

public class ReleaseTree extends Timber.Tree 
    @Override
    protected void log(int priority, String tag, String message, Throwable t)  priority == Log.DEBUG) 
            return;
        

        // log your crash to your favourite
        // Sending crash report to Firebase CrashAnalytics

        // FirebaseCrash.report(message);
        // FirebaseCrash.report(new Exception(message));
    

Cuarto. Agregar al final Mi aplicación para usted Día en tu AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="info.androidhive.timber">

    <application
        android:name=".MyApplication"
        ...>

    </application>

</manifest>

5. Timber ahora está listo para usarse en su aplicación. A continuación se muestran algunos ejemplos de instrucciones de registro de madera que ilustran diferentes escenarios.

package info.androidhive.timber;

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

import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.Unbinder;
import timber.log.Timber;

public class MainActivity extends AppCompatActivity 

    private Unbinder unbinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        unbinder = ButterKnife.bind(this);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // boolean
        boolean isWeekend = false;
        Timber.d("This prints the boolean value. Is weekend: %b", isWeekend);

        // integer
        int a = 100;
        Timber.d("Integer a value is: %d", a);

        // float
        float pi = 3.14159f;
        Timber.d("Pi value is: %f", pi);
    

    @OnClick(R.id.btn_log_string)
    void logMessage() 
        Timber.d("Hello from Timber!");

        showToast();
    

    @OnClick(R.id.btn_log_exception)
    void logException() 
        try 
            int a = 10 / 0;
            Timber.d("Value of a: %d", a);
         catch (Exception e) 
            Timber.e(e);

            // or //

            Timber.e("Exception in math operation: %s", e.getMessage());
        

        showToast();
    

    private void showToast() 
        Toast.makeText(getApplicationContext(), "Check LogCat for message or error!", Toast.LENGTH_SHORT).show();
    

    @Override
    protected void onDestroy() 
        super.onDestroy();
        unbinder.unbind();
    

LEER  Phishing: trucos desagradables y cómo protegerse de ellos

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba