比 Android 原生更方便的 Log 工具: Timber
Timber 是什麼
Timber 是一個以 Android Log
為基底所開發的 Logger Library,由 Jake Wharton大神所開發。
Timber 為了解決什麼問題
1. 開發時可以留著,但發佈版本需要移除 Log
// 你可能很常看到類似這樣的寫法…
if (BuildConfig.DEBUG) {
Log.d(TAG, “Hello World!”)
}
一般來說在開發上,我們習慣使用 Android 的 Log
class 來印出所需的資訊。但是當今天開發到一定的階段,程式必須發布上線時,為了資訊安全等需求,需要將這些 Log
給全部註解或移除,又或是加上 buildFlavor
或 buildType
判斷,這一切實在是太麻煩了…
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 就只會在 BuildType
是 DEBUG
的時候才會印出。
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 提醒你修正。