Kotlin/자주쓰는 내용 정리
안드로이드 Logger Util
yerintil
2022. 6. 9. 15:40
728x90
Logger Util 을 만들어서 클래스, 메소드 명만 출력하면서 사용하고 있었는데
MainActivity.java:123
이런 형태로 출력하면 해당 라인으로 바로 이동도 가능하다고 한다.
object Logger {
private val isDEBUG = BuildConfig.DEBUG
fun d(message: String) {
if (isDEBUG) {
Log.d(tag(), message)
}
}
fun e(message: String) {
if (isDEBUG) {
Log.e(tag(), message)
}
}
fun i(message: String) {
if (isDEBUG) {
Log.i(tag(), message)
}
}
fun w(message: String) {
if (isDEBUG) {
Log.w(tag(), message)
}
}
fun v(message: String) {
if (isDEBUG) {
Log.v(tag(), message)
}
}
private fun tag(): String {
val level = 4
val trace = Thread.currentThread().stackTrace[level]
val fileName = trace.fileName
val classPath = trace.className
val className = classPath.substring(classPath.lastIndexOf(".") + 1)
val methodName = trace.methodName.split("$").find { !it.contains("lambda") }
val lineNumber = trace.lineNumber
return "Logger# $className.$methodName($fileName:$lineNumber)"
}
}