https://github.com/JakeWharton/timber
Build.Gradle 에 dependency 를 추가합니다.
implementation 'com.jakewharton.timber:timber:4.7.1' // https://github.com/JakeWharton/timber
application on Create dㅔ서 다음과 같이 plant 를 설정한다.
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
Timber 에서 TAG 를 명시적으로 지정해 주지 않는다면 class name 이 자동으로 TAG 로 처리된다.
MainActivity 에서 Timber를 이용하여 로깅을 하는 경우
I/MainActivity: log message 형태로 출력됩니다.
특정영역에 TAG 를 custom 으로 쓰고 싶다면
Timber.tag("custom tag")
Timber.i("log message")
or
Timber.tag("custom tag").d("message...!")
형태로 사용하면 됩니다.
결론. 클래스 마다 TAG 라는 변수를 만들지 않고 클래스 단위로 로깅을 쉽게 할 수 있다.
예제 코드
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Timber.tag("LifeCycles")
Timber.d("Activity Created")
button1.setOnClickListener{
Timber.i("A button with ID %s was clicked to say '%s'.", button1.getId(), button1.getText())
Toast.makeText(this, "Check logcat for a greeting!", LENGTH_SHORT).show()
}
Timber.i("i 로 출력해보자.")
Timber.d("d 로 messge 출력")
Timber.tag("custom tag").d("message!!!!")
}
}
결과 출력
D/LifeCycles: Activity Created
I/MainActivity: i 로 출력해보자.
D/MainActivity: d 로 messge 출력
D/custom tag: message!!!!
// button 클릭 후
I/MainActivity$onCreate: A button with ID 2131165218 was clicked to say 'Hello World!'.