본문 바로가기

Android/Utility

[Android] Logger Library를 사용하여 보기 좋은 로그를 찍어보자.

728x90

이런저런 것을 확인하던 와중에,

로그를 보기 편하게 찍어주는 Logger Library를 발견하였다.

추후에도 까먹지 않고 사용하기 위해서 글을 작성해 놓고자 한다.


Logger 라이브러리를 사용하기 위해서는 Gradle 에서 라이브러리를 추가만 해주면 된다.

 

 

현재 최신 버전이 2.2.0이고,

깃허브를 확인해보니 약 1년간 코드가 변경된 부분은 없으니 해당 버전을 사용하는게 좋을 것 같다.

 

라이브러리를 다운로드 했으니,

간단하게 Initialize 만 한 후에 사용이 가능하다.

 

Logger.addLogAdapter(AndroidLogAdapter())
Logger.d("Use Logger Library")

 

addLogAdapter를 사용하여 로그 어댑터를 추가해주고,

기존에 사용하던 Log와 동일한 방식으로 Logger 뒤에 d,e,w,i 등을 붙여서 사용하면 된다.

 

위의 간단하게 추가 된 로그를 확인해 보면 다음과 같다.

 

 

태그에서 볼 수 있듯이 정말 이쁜 로그가 찍힌다.

3가지로 구분되어 있는데, 각각 Thread에 대한 정보, Method에 대한 정보, 입력한 Message 가 나오게 된다.

 

이것 외에도 다양한 로그를 출력할 수 있는데, 출력에 대한 Output은 해당 라이브러리의 깃 허브에서 가져와 보았다.

 

출처 :https://github.com/orhanobut/logger

 

이처럼 보기에 깔끔한 로그를 작성할 수 있다.

 

 

이것 외에도 로그에 대한 다양한 옵션 값을 사용자가 변경해 줄 수 있는데,

다음과 같은 함수를 통해 옵션을 변경할 수 있다.

 

val formatStrategy: FormatStrategy = PrettyFormatStrategy.newBuilder()
    .showThreadInfo(false) // Default True, Thread에 대한 정보를 보여줄지 여부
    .methodCount(0) // Default 2, Method 를 몇 라인까지 보여줄지
    .methodOffset(7) // Default 5, 몇 번째까지 Method 를 숨길지
    .logStrategy(customLog) // Default LogCat. log strategy 변경
    .tag("My custom tag") // Default PRETTY_LOGGER. Log에 사용할 글로벌 태그
    .build()

 

GitHub에 있는 java 기반 코드를 Kotlin 으로 변경 후 번역해보았다.

 

여기서 옵션을 바꿔서 여러모로 사용을 해보았는데,

일반적인 로그를 찍어서 사용했던 경우에는 해당 옵션에서 별도로 설정을 바꿔야할 필요는 없는 것 같다.

바꾸고자 하자면 Thread에 대한 정보, Method 카운트, Global Tag 에 대한 값. 3가지만 변경하여 사용하면 될 것 같다.

 

MethodOffset 의 경우, 로그를 찍을 부분의 Method의 길이가 길 경우에 사용하면 될 것 같지만, 딱히 사용할 필요까지는 없지 않을까 싶다.

 

val logFormat = PrettyFormatStrategy.newBuilder()
    .showThreadInfo(false)
    .methodCount(5)
    .tag("CustomLogTag")
    .build()

 

다음과 같이 format을 설정한 후에 로그를 찍어보면,

 

 

이처럼 변경 된 것을 확인할 수 있다.

methodCount 로 설정한 값은 해당 로그가 찍히는 곳이 마지막 기점이 되므로, 이전에 어느 flow 를 타고 왔는지 확인하기에 편할 것으로 보인다.


Logger Library 외에도 찾아보니 Timber라는 Library도 로그를 확인하는 것에 도움을 준다고 하는데,

필자의 개인적인 생각으로 Timber를 가볍게 사용해보았을 때 일반적인 Log와 큰 차이를 느끼지 못하였기 때문에 굳이 사용할 필요까지는 없다고 느꼈다.

물론 깊게 파고들어 사용한다면 로그를 사용하는데 많은 부분 도움을 줄 것으로 보이지만, 필자는 단순하게만 사용하고 있으므로 Timber 보다는 Logger가 더 도움이 크다고 생각한다.

 

Logger Library에 대한 자세한 정보는 다음 Github링크에서 확인해보길 바란다.

https://github.com/orhanobut/logger

 

GitHub - orhanobut/logger: ✔️ Simple, pretty and powerful logger for android

✔️ Simple, pretty and powerful logger for android. Contribute to orhanobut/logger development by creating an account on GitHub.

github.com

 

728x90