-
[Android] Timber로 Debug 상태에서 로그 찍어내기안드로이드 2022. 4. 30. 22:30728x90반응형
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는 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()) } } }
출처🚀
github.com/JakeWharton/timber
https://jhdroid.tistory.com/9728x90반응형'안드로이드' 카테고리의 다른 글
[Android] Repository Pattern (0) 2022.05.07 [Android] DP vs SP (0) 2022.05.07 [Android] ADB wifi 디버깅 방법(무선 디버깅) (0) 2022.03.26 [Android] LayoutInflater란 (0) 2022.03.22 [Android] 아키텍처 패턴(MVC,MVP,MVVM)에 대하여 (0) 2022.03.20