AAkira / Napier

Logging library for Kotlin Multiplatform
Apache License 2.0
786 stars 34 forks source link

Refresh CrashlyticsAntilog with new FirebaseCrashlytics methods #44

Closed kwiky closed 3 years ago

kwiky commented 4 years ago

See https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android

Example : Crashlytics.getInstance().core.logException(it) become FirebaseCrashlytics.getInstance().recordException(it)

Proposal :

class CrashlyticsAntilog(private val context: Context) : Antilog() {

    override fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) {
        // send only error log
        if (priority < Napier.Level.ERROR) return
        FirebaseCrashlytics.getInstance().log("$tag : $message")

        throwable?.let {
            when {
                // e.g. http exception, add a customized your exception message
                // it is KtorException -> {
                //      FirebaseCrashlytics.getInstance().log(priority.ordinal, "HTTP Exception", it.response?.errorBody.toString())
                // }
            }
            FirebaseCrashlytics.getInstance().recordException(it)
        }
    }
}