Timber für Kotlin: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Timber für Kotlin: Vollständige Anleitung mit Beispielen

1. Was ist Timber und warum wird es benötigt?

Timber ist eine leichtgewichtige Bibliothek für das Logging in Android-Apps, geschrieben in Kotlin. Sie wurde von Jake Wharton entwickelt – einem der führenden Android-Entwickler, bekannt für Projekte wie Retrofit, OkHttp und Dagger. Das Hauptziel von Timber ist es, Entwickler von Boilerplate-Code beim Logging zu befreien und einen flexiblen Mechanismus zur Verwaltung von Logs in verschiedenen Entwicklungsphasen bereitzustellen.

Warum Timber verwenden, wenn es doch das standardmäßige android.util.Log gibt? Erstens fügt Timber automatisch den Klassen- und Methodennamen zu jedem Log hinzu, was die Fehlersuche erheblich erleichtert. Sie müssen nicht mehr Log.d(TAG, "message") schreiben – ein einfacher Aufruf von Timber.d("message") reicht aus. Zweitens bietet Timber ein "Tree"-System (Bäume), mit dem Sie Logs auf verschiedene Kanäle aufteilen können: Zum Beispiel im Debug-Build alles in Logcat ausgeben und im Release-Build nur Fehler an Crashlytics oder einen anderen Analysedienst senden.

Ein dritter wichtiger Vorteil: Timber deaktiviert automatisch alle Logs im Release-Build, sofern Sie keinen speziellen Baum für die Produktion eingerichtet haben. Das steigert nicht nur die Leistung, sondern verhindert auch das Durchsickern sensibler Daten über Logs. Die Bibliothek ist so beliebt, dass sie in tausenden kommerziellen Projekten eingesetzt wird und von Google in offiziellen Android-Entwicklungsleitfäden empfohlen wird.

2. Installation

Timber wird über Maven Central verbreitet. Fügen Sie zur Installation die Abhängigkeit in Ihre build.gradle-Datei (Modulebene) ein:

dependencies {
    implementation 'com.jakewharton.timber:timber:5.0.1'
}

Falls Sie Kotlin DSL (build.gradle.kts) verwenden:

dependencies {
    implementation("com.jakewharton.timber:timber:5.0.1")
}

Nach der Gradle-Synchronisation ist die Bibliothek einsatzbereit. Beachten Sie: Timber benötigt keine zusätzlichen Berechtigungen in der AndroidManifest.xml.

3. Schnellstart – Minimales funktionierendes Beispiel

Um loszulegen, müssen Sie einen "Baum pflanzen" (plant a tree) – also einen Log-Handler registrieren. Der einfachste Weg ist die Verwendung des integrierten Timber.DebugTree, das Logs mit dem Level DEBUG und höher in Logcat ausgibt:

import timber.log.Timber

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        if (BuildConfig.DEBUG) {
            Timber.plant(Timber.DebugTree())
        }
    }
}

Jetzt können Sie von überall in Ihrer App Logs schreiben:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        Timber.d("Activity erstellt")
        Timber.i("Benutzer hat Hauptbildschirm geöffnet")
        Timber.w("Etwas Verdächtiges ist passiert")
        Timber.e("Fehler aufgetreten: %s", "Netzwerk-Timeout")
    }
}

In Logcat sehen Sie dann etwa Folgendes:

D/MainActivity: Activity erstellt
I/MainActivity: Benutzer hat Hauptbildschirm geöffnet
W/MainActivity: Etwas Verdächtiges ist passiert
E/MainActivity: Fehler aufgetreten: Netzwerk-Timeout

Beachten Sie: Timber hat automatisch den Klassennamen (MainActivity) erkannt und als Tag hinzugefügt. Sie müssen keine manuelle TAG-Konstante mehr erstellen.

4. Wichtige Methoden/Funktionen/Klassen

4.1. Timber.d() – Debug-Logging

Signatur: fun d(message: String, vararg args: Any?)

Funktion: Gibt eine Debug-Nachricht mit dem Level DEBUG aus. Wird für temporäre Logs während der Entwicklung verwendet. Im Release-Build standardmäßig deaktiviert.

Timber.                    

Empfehlungen