比 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