java 용은 http://susemi99.kr/5281/ 에 했는데, 아직 코틀린용은 블로그에 안 올렸었구나 ;;;
import android.util.Log /** * 로그 표시용 */ object Logg { private fun tag(): String? { return Thread.currentThread().stackTrace[4].let { val link = "(${it.fileName}:${it.lineNumber})" val path = "App# ${it.className.substringAfterLast(".")}.${it.methodName}" if (path.length + link.length > 80) { "${path.take(80 - link.length)}...${link}" } else { "$path$link" } } } fun v(msg: String?) { Log.v(tag(), "💜 $msg") } fun d(msg: String?) { Log.d(tag(), "💙 $msg") } fun i(msg: String?) { Log.i(tag(), "💚 $msg") } fun w(msg: String?) { Log.w(tag(), "💛 $msg") } fun w(e: Throwable?) { Log.w(tag(), "💛 ${e?.localizedMessage}") e?.printStackTrace() } fun w(e: Exception?) { Log.w(tag(), "💛 ${e?.localizedMessage}") e?.printStackTrace() } fun e(msg: String?) { Log.e(tag(), "💔 $msg") } fun e(e: Throwable?) { Log.e(tag(), "💔 ${e?.localizedMessage}") e?.printStackTrace() } fun e(e: java.lang.Exception?) { Log.e(tag(), "💔 ${e?.localizedMessage}") e?.printStackTrace() } }
실제 로그를 찍을 땐 이렇게 하면 된다.
Logg.i("========= 로그 ==========")
그럼 이렇게 로그가 찍힌다.
I/App# MainActivity.onCreate(MainActivity.kt:11): ========= 로그 ==========
이런 식으로 자동으로 링크가 생겨서 클릭하면 저 위치로 이동한다.

좀 더 편하게 하기위해서는 auto import
도 적용해줘야 한다.

live template
에도 단축키를 지정해준다. 나는 vlog
, dlog
, ilog
, wlog
, elog
를 지정해두고 사용하고 있다.
