- 개요
Crashlytics 사용하면서, 디버그 상황에서나, 에러 로그에 관해 아쉽다고 생각한 적이 있었다면 정독해주시면 되겠습니다. Timber 이용하여 효율적으로 앱을 개발하는 방법을 소개합니다.
코드 구현
class CrashlyticsTree : Timber.Tree(){
override fun log(priority: Int, tag: String?,message: String, t: Throwable?) {
if (priority == Log.VERBOSE || priority == Log.DEBUG || priority == Log.INFO) {
return
}
Crashlytics.setInt(CRASHLYTICS\_KEY\_PRIORITY, priority) Crashlytics.setString(CRASHLYTICS\_KEY\_TAG, tag) Crashlytics.setString(CRASHLYTICS\_KEY\_MESSAGE, message)
if (t == null) { Crashlytics.logException(Exception(message)) } else { Crashlytics.logException(t) } } companion object { private const val CRASHLYTICS\_KEY\_PRIORITY = "priority" private const val CRASHLYTICS\_KEY\_TAG = "tag" private const val CRASHLYTICS\_KEY\_MESSAGE = "message" } }
사용방법
class BaseApplication() : Application(){
override fun onCreate(){
if(BuildConfig.Debug){
Timber.plant(Timber.debugTree())
}else{
Timber.plant(CrashlyticsTree())
}
}
}
위와 같은 형태로 사용을 하게 되면, Timber.e(throwable) 통하여 에러처리 하였을 때, Debug 상태에서는 Log 창에만 남게 되고, Debug 상태가 아닐 시에는 Crashlytics Report 받아볼 수 있습니다.
- 결론
개발을 하면서 Error Report 관해 고민을 하는 상황이 많았었는데, 위와같은 형태로 사용을 하게 되면 Debug 구분을 하기 때문에 명확하게 Error Report 남길 수 있게 되어 좋다고 판단한다.
'Program Language > Android' 카테고리의 다른 글
Android StrictMode? 그게뭔데 ? (0) | 2022.08.09 |
---|---|
[android] Androidx 사용법 (0) | 2018.12.30 |
[Kotlin] 코틀린! data 클래스 (0) | 2018.08.03 |
[Kotlin] 코틀린만의 접근지정자! internal (0) | 2018.08.02 |
[Kotlin] 코틀린이란? (0) | 2018.07.31 |
댓글