/* Ċ Ġ* ĠCopyright Ġ@ Ġ 2 0 1 8 ĠAt lassian ĠP ty ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . j its i . nl j . util Ċ Ċ import Ġorg . j its i . util . Logger Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . full . comp anion Object Ċ Ċ // ĠLogger Ġalready Ġhas Ġfunctions Ġ' info ', Ġ' debug ', Ġetc . Ġwhich Ġtake Ġin ĠObject , Ġso Ġwe Ġcan 't Ċ // Ġoverride Ġthose . Ġ ĠThe Ġ' c ' Ġin Ġthese Ġmethods Ġstands Ġfor Ġ' conditional ' Ġas Ġthe Ġgiven Ċ // Ġfunction Ġis Ġonly Ġexecuted Ġif Ġthat Ġlog Ġlevel Ġis Ġenabled . Ċ Ċ fun ĠLogger . c info ( msg : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( is Info Enabled ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . info ( msg ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠLogger . c debug ( msg : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( isDebugEnabled ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . debug ( msg ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠLogger . c warn ( msg : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( is Warn Enabled ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . warn ( msg ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠLogger . c error ( msg : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠ Ġthis . error ( msg ()) Ċ } Ċ // ĠLogger Ġhelpers Ġbelow Ġtaken Ġfrom Ġhttps :// stackoverflow . com / a / 3 4 4 6 2 5 7 7 Ċ Ċ // ĠReturn Ġlogger Ġfor ĠJava Ġclass , Ġif Ġcompanion Ġobject Ġfix Ġthe Ġname Ċ fun Ġ< T : ĠAny > Ġget Logger ( for Class : ĠClass < T >): ĠLogger Ġ{ ĊĠĠĠ Ġreturn ĠLogger . getLogger ( for Class . name ) Ċ } Ċ Ċ // ĠReturn Ġlogger Ġfor ĠKotlin Ġclass Ċ fun Ġ< T : ĠAny > Ġlogger ( for Class : ĠK Class < T >): ĠLogger Ġ{ ĊĠĠĠ Ġreturn Ġget Logger ( for Class . java ) Ċ } Ċ