Skip to content

Instantly share code, notes, and snippets.

@trevorhackman
Created October 20, 2021 21:27
Show Gist options
  • Save trevorhackman/7581f5d6c7626c7d590cb2bcaebed451 to your computer and use it in GitHub Desktop.
Save trevorhackman/7581f5d6c7626c7d590cb2bcaebed451 to your computer and use it in GitHub Desktop.
Tagger but with reflection to grab class name.
interface Tag {
val tag: String
val log: Tagger.TaggedLogger
}
open class Tagger() : Tag {
override val tag = javaClass.enclosingClass?.simpleName ?: javaClass.simpleName
interface TaggedLogger {
fun e(message: String)
fun w(message: String)
fun i(message: String)
fun d(message: String)
fun v(message: String)
}
override val log = object : TaggedLogger {
override fun e(message: String) {
Log.e(tag, message)
}
override fun w(message: String) {
Log.w(tag, message)
}
override fun i(message: String) {
Log.i(tag, message)
}
override fun d(message: String) {
Log.d(tag, message)
}
override fun v(message: String) {
Log.v(tag, message)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment