package Ġde . ht w dd . ht wd res den . utils Ċ Ċ import Ġandroid . util . Log Ċ import Ġde . ht w dd . ht wd res den . Build Config Ċ Ċ private Ġval ĠIS _ DEBUG : ĠBoolean Ġ= ĠBuild Config . DEBUG Ċ Ċ sealed Ġclass ĠLogLevel Ġ{ ĊĠĠĠ Ġobject ĠVer bose : ĠLogLevel () ĊĠĠĠ Ġobject ĠDebug : ĠLogLevel () ĊĠĠĠ Ġobject ĠInfo : ĠLogLevel () ĊĠĠĠ Ġobject ĠW arn : ĠLogLevel () ĊĠĠĠ Ġobject ĠError : ĠLogLevel () Ċ } Ċ Ċ private Ġfun Ġprint Log ( logLevel : ĠLogLevel , Ġtag : ĠString , Ġmessage : ĠAny ?) Ġ{ ĊĠĠĠ Ġif Ġ( IS _ DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprint able Message Ġ= Ġwhen Ġ( message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCollection < *> Ġ-> Ġmessage . to Typed Array (). join ToString (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġmessage . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( logLevel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLogLevel . Verbose Ġ-> ĠLog . v ( tag , Ġprint able Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLogLevel . Debug ĠĠ Ġ-> ĠLog . d ( tag , Ġprint able Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLogLevel . Info ĠĠĠ Ġ-> ĠLog . i ( tag , Ġprint able Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLogLevel . Warn ĠĠĠ Ġ-> ĠLog . w ( tag , Ġprint able Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLogLevel . Error ĠĠ Ġ-> ĠLog . e ( tag , Ġprint able Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun Ġverbose ( tag : ĠString , Ġmessage : ĠAny ?) Ġ= Ġprint Log ( LogLevel . Verbose , Ġtag , Ġmessage ) Ċ Ċ fun Ġdebug ( tag : ĠString , Ġmessage : ĠAny ?) Ġ= Ġprint Log ( LogLevel . Debug , Ġtag , Ġmessage ) Ċ Ċ fun Ġinfo ( tag : ĠString , Ġmessage : ĠAny ?) Ġ= Ġprint Log ( LogLevel . Info , Ġtag , Ġmessage ) Ċ Ċ fun Ġwarn ( tag : ĠString , Ġmessage : ĠAny ?) Ġ= Ġprint Log ( LogLevel . Warn , Ġtag , Ġmessage ) Ċ Ċ fun Ġerror ( tag : ĠString , Ġmessage : ĠAny ?) Ġ= Ġprint Log ( LogLevel . Error , Ġtag , Ġmessage ) Ċ Ċ fun Ġerror ( exception : ĠThrowable ) Ġ{ ĊĠĠĠ Ġerror ( exception . localized Message ?. toString () Ġ?: Ġexception . java Class . simple Name Ġ, ĠLog . get StackTrace String ( exception )) Ċ }