Home / Android-Entwicklung / Android Better Logging mit Timber Library

Android Better Logging mit Timber Library

Timber ist eine Protokollierungsdienstprogrammklasse, die auf der Protokollklasse von Android aufbaut. Während der Entwicklung werden in der Regel viele Protokollanweisungen geschrieben, und vor der Veröffentlichung werden die Protokollanweisungen bereinigt, indem sie manuell entfernt werden (obwohl Protokolle in der Versionserstellung deaktiviert werden können). Dieser mühsame Vorgang kann mit Timber leicht vermieden werden.

Timber bietet auch viele andere Optionen. Mal sehen, wie es in unseren Projekten verwendet werden kann, um die Protokolle besser zu pflegen.

 android-recaptcha-integration-safetynet-api "width =" 720 "height =" 359 "class =" aligncenter size-full wp-image- 41771 "srcset =" https://www.androidhive.info/wp-content/uploads/2018/03/android-recaptcha-integration-safetynet-api.png 720w, https://www.androidhive.info/wp- content / uploads / 2018/03 / android-rekapitel-integration-safetynet-api-300x150.png 300w "sizes =" (maximale Breite: 720px) 100vw, 720px "/> <noscript><img src= 1. Timber

Nachfolgend sind einige Debug-Anweisungen aufgeführt, die mit der Standard-Protokollklasse gedruckt wurden.







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

String name = "Android Studio";
Log.e ("TAG", String.format ("Mein Name ist:% s", Name));

Die obigen Aussagen können mit Timber wie folgt gedruckt werden.








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

String name = "Android Studio";
Timber.d ("Mein Name ist:% s", Name);
  • Sie können hier feststellen, dass das TAG nicht an Timber übergeben wird, da es automatisch die Klasse erkennt, in der Protokolle geschrieben wurden.
  • Außerdem wird String-Formatierer nicht zum Formatieren verwendet Die Anweisung als Timber kann dies automatisch für Sie tun.

2. Integrieren von Timber

Lassen Sie uns nun sehen, wie Sie die Timber-Bibliothek in Ihr Projekt integrieren, um sie in jeder Klasse verfügbar zu machen.

1 . Erstellen Sie ein neues Projekt in Android Studio aus Datei ⇒ Neues Projekt und wählen Sie Grundaktivität aus Vorlagen.

2 . Öffnen Sie build.gradle und fügen Sie die Abhängigkeit von Timber hinzu. Buttermesser ist hier optional, wird aber für dieses Beispiel benötigt.








     // Holz
    Implementierung 'com.jakewharton.timber: timber: 4.7.1'

    // Buttermesser
    Implementierung 'com.jakewharton: butterknife: 8.8.1'
    annotationProcessor 'com.jakewharton: butterknife-compiler: 8.8.1'

3 . Timber muss initialisiert werden, sobald die App startet. Also, Application Class wäre der beste Ort, um das zu tun. Erstellen Sie eine neue Klasse mit dem Namen MyApplication.java und erweitern Sie die Klasse von Application .

  • Initialisieren Sie Timber in der onCreate-Methode, indem Sie einen neuen Baum pflanzen.
  • Hier druckt Timber.DebugTree () Protokolle im Debug-Modus.
  • Wenn Sie Ausnahmen im Release-Modus abfangen möchten, können Sie dies erstelle einen anderen Baum und pflanze ihn im Freigabemodus. Dieser Schritt ist vollständig optional. Wenn Sie jedoch Ausnahmen an einen anderen Dienst senden möchten, ist dies der geeignete Ort.




















 package info.androidhive.timber;

android.app.Application importieren;

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

öffentliche Klasse MyApplication erweitert Application {
    @Override
    public void onCreate () {
        super.onCreate ();

        if (BuildConfig.DEBUG) {
            Timber.plant (neues Timber.DebugTree ());
        } else {
            Timber.plant (neuer ReleaseTree ());
        }
    }
}

4 . Sie können einen benutzerdefinierten Baum erstellen, indem Sie die Klasse von Timber.Tree erweitern. Hier ist das Beispiel für die Klasse ReleaseTree.java .






















 package info.androidhive.timber.log;

import android.util.Log;

importieren timber.log.Timber;

public class ReleaseTree erweitert Timber.Tree {
    @Override
    Protected Void Log (Int-Priorität, String-Tag, String-Nachricht, Throwable t) {
        if (priority == Log.VERBOSE || priority == Log.DEBUG) {
            Rückkehr;
        }

        // Logge deinen Absturz zu deinem Favoriten
        // Senden eines Absturzberichts an Firebase CrashAnalytics

        // FirebaseCrash.report (message);
        // FirebaseCrash.report (neue Ausnahme (Nachricht));
    }
}

4 . Fügen Sie schließlich MyApplication zu Ihrem -Tag in Ihrer AndroidManifest.xml

hinzu.







    





    


5 . Jetzt kann Timber in Ihrer App verwendet werden. Im Folgenden finden Sie einige Beispiele für Timber-Protokollanweisungen, die verschiedene Szenarien veranschaulichen.









































































 package info.androidhive.timber;

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

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

public class MainActivity erweitert 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 (Symbolleiste);

        // Boolescher Wert
        boolean isWeekend = false;
        Timber.d ("Gibt den Booleschen Wert aus. Ist am Wochenende:% b", ist am Wochenende);

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

        // float
        float pi = 3,14159f;
        Timber.d ("Pi-Wert ist:% f", pi);
    }

    @OnClick (R.id.btn_log_string)
    void logMessage () {
        Timber.d ("Hallo von Timber!");

        showToast ();
    }

    @OnClick (R.id.btn_log_exception)
    void logException () {
        Versuchen {
            int a = 10/0;
            Timber.d ("Wert von a:% d", a);
        } catch (Ausnahme e) {
            Timber.e (e);

            // oder //

            Timber.e ("Ausnahme in der mathematischen Operation:% s", e.getMessage ());
        }

        showToast ();
    }

    private void showToast () {
        Toast.makeText (getApplicationContext (), "LogCat auf Meldung oder Fehler prüfen!", Toast.LENGTH_SHORT) .show ();
    }

    @Override
    Geschützte Leere onDestroy () {
        super.onDestroy ();
        unbinder.unbind ();
    }
}
Hallo zusammen! Ich bin Gründer bei androidhive und Programmierer. Meine Fähigkeiten umfassen Android, iOS, PHP, Ruby on Rails und vieles mehr. Wenn Sie eine Idee haben, die ich entwickeln soll? Reden wir: ravi@androidhive.info



About AndroidWeltEditor

Check Also

How to call a method in Java

In this post, we will learn how to call a method in Java. This is …

Leave a Reply

Your email address will not be published. Required fields are marked *