Timber 概述
Timber 是由 Jake Wharton 開發的函式庫,用來取代內建的 Log。
優點
1、可彈性設定標籤
內建的 Log 需要指定標籤 (tag),但是 Timber 預設是用 activity 的名稱來當做標籤,當然你也可以自訂標籤名稱
2、可全域設定是否輸出 log
Google 建議 log 最好只在 Debug 階段使用,在產品階段不要有 log
函式庫依賴
app/build.gradle
Log.d("TAG", "log message")
Timber.d("log message")
Timber.tag("TAG").d("log message")
...
dependencies {
...
implementation "com.jakewharton.timber:timber:5.0.1"
}
程式碼
我們通常會自訂 Application ,並在其中設定好 Timber
MyApplication.kt
我們通常只需要在 debug 時印出 log
class MyApplication: Application() {
override fun onCreate() {
super.onCreate()
if(BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="<http://schemas.android.com/apk/res/android>"
xmlns:tools="<http://schemas.android.com/tools>">
<application
android:name=".MyApplication"
...
</application>
</manifest>
MainActivity.kt
然後你就可以在程式裏的任何地方使用 Timber ,在這裏以 MainActivity 為例
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Timber.d("onCreate")
}
}
Reference
User Guide: Write and View Logs with Logcat
User Guide: Logcat command-line tool
Better Logging In Android Using Timber
https://jimmy4302001.medium.com/使用timber來幫忙打印log-afc54aaa76d6
https://www.section.io/engineering-education/planting-timber-logs-the-right-way/
https://www.freecodecamp.org/news/how-to-log-more-efficiently-with-timber-a3f41b193940/
Android: a library to write log on file?
Android Kotlin: Android Writing Logs to text File (help DEV find BUG when TESTER test)
https://stackoverflow.com/questions/1756296/android-writing-logs-to-text-file
Comments