package Ġdev li um . bud ge tr . system Ċ Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . full . comp anion Object Ċ Ċ /* ĊĠĠĠ ĠFor Ġmore Ġdetails Ġof Ġthis Ġapproach Ġsee ĊĠĠĠ Ġ- Ġhttps :// stackoverflow . com / questions / 3 4 4 1 6 8 6 9 / idi om atic - way - of - logging - in - kotlin ĊĠĠĠ Ġ- Ġhttps :// www . ba eld ung . com / kotlin - logging Ċ Ġ*/ Ċ Ċ fun Ġ< R Ġ: ĠAny > ĠR . logger (): ĠLazy < Logger > Ġ{ ĊĠĠĠ Ġreturn Ġlazy Ġ{ ĠLoggerFactory . getLogger ( unwrap Companion Class ( this . java Class ). name ) Ġ} Ċ } Ċ Ċ fun Ġ< T Ġ: ĠAny > Ġunwrap Companion Class ( of Class : ĠClass < T >): ĠClass < *> Ġ{ ĊĠĠĠ Ġreturn Ġof Class . enc lo sing Class ?. take If Ġ{ ĊĠĠĠĠĠĠĠ Ġof Class . enc lo sing Class . kotlin . comp anion Object ?. java Ġ== Ġof Class ĊĠĠĠ Ġ} Ġ?: Ġof Class Ċ } Ċ Ċ fun Ġ< T : ĠAny > Ġunwrap Companion Class ( of Class : ĠK Class < T >): ĠK Class < *> Ġ{ ĊĠĠĠ Ġreturn Ġunwrap Companion Class ( of Class . java ). kotlin Ċ } Ċ