안드로이드

[Android] Timber로 Debug 상태에서 로그 찍어내기

Zibro 2022. 4. 30. 22:30
728x90
반응형

Timber? 🐞

Timber는 Android의 Log 클래스 위에 구축된 로깅 유틸리티 클래스입니다.

Debug 상태에서 Log를 남기고, Release 상태에서 Log를 출력하고 싶지 않을 때 주로 사용합니다.

반응형

사용법🤷🏻‍♂️

1. app 수준의 build.gradle에 Timber 의존성 추가 (22.04.30일 기준 라이브러리 버전)

implementation 'com.jakewharton.timber:timber:5.0.1'

2. Debug 상태에서만 로그를 출력하기 위해 앱 시작 시 Timber 초기화해주어야 합니다.

class Application: Application() {
    override fun onCreate() {
        super.onCreate()

        if(BuildConfig.DEBUG){
            Timber.plant(Timber.DebugTree())
        }
    }
}

3. Timber 초기화 코드를 앱이 시작하자마자 실행시키기 위해 Manifest에 추가 해줍니다.

<application
    android:name=".Application"
    ...
    >
    <activity
    	...
        >
        ...
    </activity>
</application>

4. 로깅을 하기 위한 곳에 Timber 추가해줍니다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Timber.d("Hello! World")
        Log.d("Print_Log","Hello! World")
    }
}

출력

Timber 출력
Log.d 출력

Timber는 Tag를 별도로 지정해주지 않아도 호출 한 클래스명이 Tag로 들어가 출력이 됩니다.

 

Timber에서 아래와 같이 Tag를 별도로 지정해 줄 수 있습니다.👇🏻

Timber.tag("Print_Timber").d("Hello! World")

 

Timber.DebugTree()를 커스텀 통해 상세한 Log 남기기

class CustomTimberTree: Timber.DebugTree() {
    override fun createStackElementTag(element: StackTraceElement): String? {
        return "${element.className}:${element.lineNumber}#${element.methodName}"
    }
}

 

CustomTimberTree Timber에 적용

class Application: Application() {
    override fun onCreate() {
        super.onCreate()

        if(BuildConfig.DEBUG){
            Timber.plant(TimberDebugTree())
        }
    }
}

CustomTimberTree 로깅

 

출처🚀
github.com/JakeWharton/timber
https://jhdroid.tistory.com/9

 

728x90
반응형