比 Android 原生更方便的 Log 工具: Timber

Daniel Huang
Feb 14, 2023

Photo by Vidar Smits on Unsplash

Timber 是什麼

Timber 是一個以 Android Log為基底所開發的 Logger Library,由 Jake Wharton大神所開發。

Timber 為了解決什麼問題

1. 開發時可以留著,但發佈版本需要移除 Log

// 你可能很常看到類似這樣的寫法…
if (BuildConfig.DEBUG) {
Log.d(TAG, “Hello World!”)
}

一般來說在開發上,我們習慣使用 Android 的 Log class 來印出所需的資訊。但是當今天開發到一定的階段,程式必須發布上線時,為了資訊安全等需求,需要將這些 Log 給全部註解或移除,又或是加上 buildFlavorbuildType 判斷,這一切實在是太麻煩了…

2. 每次在新的類別中使用 Log 就要建一個該類別的 TAG String

val TAG: String = Hello::class.java.simple
if (BuildConfig.DEBUG) {
Log.d(TAG, "Hello World!")
}

Timber 怎麼使用

1. Dependency

build.gradle 中加入以下的 Dependency。

repositories {
mavenCentral()
}
dependencies {
implementation 'com.jakewharton.timber:timber:5.0.1'
}

2. 初始化

在專案內繼承的 Application class 的 onCreate() 中呼叫以下程式碼。這樣一來,Timber 的 log 就只會在 BuildTypeDEBUG 的時候才會印出。

override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
}

如果有想要在正式版時印出特定的除錯資訊,可以參考官方的範例

3. 使用

Timber.d(“initFcmToken: token = $token”)
Timber.e(e, “initCertificate: “)

基本上 i, w, d, e 四種 Log 類型都有。
另外,Library 本身還帶有語法檢查,如果使用 Timber 但格式錯誤,或是有用 Android 的 Log,都會有 IDE 的 Highlight 提醒你修正。

參考資料

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Daniel Huang
Daniel Huang

Written by Daniel Huang

一位Android工程師,每天對於如何在茫茫技術海中存活感到憂慮。每次動筆都不斷告訴自已,筆記不是為了別人,是為了自己。

No responses yet

Write a response