Привет, я хотел бы, чтобы о материалах из Crashlytics (включая setInt, setString и т. Д.) Сообщалось в Logcat (через Timber, хотя также можно напрямую через Log). Во время отладки я бы также хотел, чтобы Crashlytics не сообщал о сбоях на сервере.

Я начал с попытки переопределить методы в CharlyticsCore:

    // From Crashlytics to Timber
    val cc = object : CrashlyticsCore() {
        override fun log(msg: String?) { Timber.tag("CrashlyticsLog").d(msg) }
        override fun logException(throwable: Throwable?) { Timber.e(throwable) }
        // setInt, setFloat etc. call setString
        override fun setString(key: String?, value: String?) { Timber.tag(key).d(value) }
    }

    Fabric.with(appContext, Crashlytics.Builder().core(cc).build()

Но я не вижу никаких отчетов в logcat, только отчеты об инициализации:

I/CrashlyticsCore: Initializing Crashlytics Core 2.7.0.33
I/CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
W/CrashlyticsCore: Received null settings, skipping report submission!
TimberOnlyTest online
0
Jure Sencar 21 Дек 2019 в 04:03

1 ответ

Вам необходимо явно войти в logcat. Это пример моего дерева.

inner class DebugCrashReportingTree : Timber.DebugTree() {

       override fun log(priority: Int, tag: String?, message: String, 
       throwable: Throwable?) {
        if (priority == Log.VERBOSE) {
            return
        }
       //print to logcat
        Log.println(priority, tag, message)

        Crashlytics.log(priority, tag, message)
        val t = throwable ?: Exception(message)
        Crashlytics.logException(t)
    }
}

Затем установите его так в своем классе приложения onCreate

Timber.plant(DebugCrashReportingTree())

0
valentine rutto 28 Фев 2020 в 12:02
Я хочу сделать наоборот (от Crashlytics до Timber)
 – 
Jure Sencar
1 Мар 2020 в 00:12