実装
class CrashlyticsTree : Timber.Tree() {
override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
if (priority >= Log.ERROR) {
FirebaseCrashlytics.getInstance().log("$tag: $message")
t?.let { FirebaseCrashlytics.getInstance().recordException(it) }
}
}
}
上記クラスを作成して、Applicationクラスに以下のように追加することで通常通りTimberを使用しながら自動でTimber.e(Throwable)するだけで自動送信されます。
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
// デバッグ時は通常のログ出力
Timber.plant(Timber.DebugTree())
} else {
// リリース時はCrashlyticsTreeを使う
Timber.plant(CrashlyticsTree())
}
}
}