Coverage Summary for Class: LoggerImpl (com.vsevolodganin.clicktrack.utils.log)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| LoggerImpl |
0%
(0/3)
|
0%
(0/2)
|
0%
(0/8)
|
0%
(0/37)
|
| LoggerImpl$MetroContributionToApplicationScope |
|
| LoggerImpl$MetroContributionToApplicationScope$BindsMirror |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
| LoggerImpl$MetroFactory |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/18)
|
| LoggerImpl$MetroFactory$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/14)
|
| LoggerImpl$NonFatalException |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/4)
|
| Total |
0%
(0/7)
|
0%
(0/2)
|
0%
(0/12)
|
0%
(0/75)
|
package com.vsevolodganin.clicktrack.utils.log
import android.util.Log
import com.google.firebase.crashlytics.FirebaseCrashlytics
import com.vsevolodganin.clicktrack.common.ApplicationBuildConfig
import com.vsevolodganin.clicktrack.di.component.ApplicationScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
@SingleIn(ApplicationScope::class)
@ContributesBinding(ApplicationScope::class)
@Inject
class LoggerImpl(
private val firebaseCrashlytics: FirebaseCrashlytics,
private val applicationBuildConfig: ApplicationBuildConfig,
) : Logger {
override fun logError(tag: String, message: String) = logError(tag, message, null)
override fun logError(tag: String, message: String, throwable: Throwable?) {
firebaseCrashlytics.setCustomKey("Tag", tag)
firebaseCrashlytics.recordException(NonFatalException(message, throwable))
if (applicationBuildConfig.isDebug) {
Log.e("ClickTrack::$tag", message, throwable)
}
}
private class NonFatalException(message: String, throwable: Throwable?) : Exception(message, throwable)
}