Timber para Kotlin: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Timber para Kotlin: guia completo com exemplos práticos

1. O que é e para que serve

Timber é uma biblioteca leve para logging em aplicativos Android, escrita em Kotlin. Foi criada por Jake Wharton — um dos principais desenvolvedores Android, conhecido por projetos como Retrofit, OkHttp e Dagger. O principal objetivo do Timber é eliminar o código repetitivo (boilerplate) ao fazer logging e fornecer um mecanismo flexível para gerenciar logs em diferentes fases do desenvolvimento.

Por que usar Timber se já existe o android.util.Log padrão? Primeiro, o Timber adiciona automaticamente o nome da classe e do método em cada log, tornando a depuração muito mais fácil. Você não precisa mais escrever Log.d(TAG, "mensagem") — basta chamar Timber.d("mensagem"). Segundo, o Timber oferece um sistema de "árvores" (Trees) que permite separar logs em diferentes canais: por exemplo, na versão de debug exibir tudo no Logcat, e na versão de release enviar apenas erros para o Crashlytics ou outro serviço de análise.

Uma terceira vantagem importante: o Timber desativa automaticamente todos os logs na versão de release, a menos que você configure uma árvore especial para produção. Isso não só melhora o desempenho, mas também evita vazamento de dados sensíveis através dos logs. A biblioteca é tão popular que é usada em milhares de projetos comerciais e é recomendada pelo Google nos guias oficiais de desenvolvimento Android.

2. Instalação

O Timber é distribuído via Maven Central. Para instalar, adicione a dependência no arquivo build.gradle (nível do módulo):

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

Se você usa Kotlin DSL (build.gradle.kts):

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

Após sincronizar o Gradle, a biblioteca está pronta para uso. Observação: o Timber não requer permissões adicionais no AndroidManifest.xml.

3. Início rápido — exemplo mínimo funcional

Para começar, é necessário "plantar uma árvore" (plant a tree) — registrar um manipulador de logs. A maneira mais simples é usar a árvore embutida Timber.DebugTree, que exibe logs no Logcat com nível DEBUG ou superior:

import timber.log.Timber

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

Agora, em qualquer lugar do aplicativo, você pode escrever logs:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        Timber.d("Activity criada")
        Timber.i("Usuário abriu a tela principal")
        Timber.w("Algo suspeito aconteceu")
        Timber.e("Erro ocorrido: %s", "Timeout de rede")
    }
}

No Logcat, você verá algo como:

D/MainActivity: Activity criada
I/MainActivity: Usuário abriu a tela principal
W/MainActivity: Algo suspeito aconteceu
E/MainActivity: Erro ocorrido: Timeout de rede

Observe: o Timber identificou automaticamente o nome da classe (MainActivity) e o adicionou à tag. Você não precisa criar manualmente uma constante TAG.

4. Métodos/funções/classes principais

4.1. Timber.d() — Log de depuração (Debug)

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

O que faz: Exibe uma mensagem de depuração com nível DEBUG. Usado para logs temporários durante o desenvolvimento. Na versão de release, por padrão, não é exibido.

Timber.                    

Recommendations