ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] Timber로 Debug 상태에서 로그 찍어내기
    안드로이드 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
    반응형

    댓글

Designed by ZibroTistory.