/* Ċ Ġ* ĠCopyright Ġ( c ) ĠCall um ĠM ack enz ie Ġ 2 0 2 2 . Ċ Ġ*/ Ċ Ċ package Ġcom . cam ack enz ie . ex vi . core . util Ċ Ċ import Ġio . github . a ak ira . n api er . Ant ilog Ċ import Ġio . github . a ak ira . n api er . LogLevel Ċ import Ġio . github . a ak ira . n api er . N api er Ċ import Ġkotlin . jvm . Jvm Over loads Ċ Ċ val ĠEx vi Logger Ġ= ĠN api er Ċ Ċ private Ġval Ġdefault Priority Map Ġ= Ġmap Of ( ĊĠĠĠ ĠLogLevel . VERBOSE Ġto Ġ"[ VERBOSE ]", ĊĠĠĠ ĠLogLevel . DEBUG Ġto Ġ"[ DEBUG ]", ĊĠĠĠ ĠLogLevel . INFO Ġto Ġ"[ INFO ]", ĊĠĠĠ ĠLogLevel . WARNING Ġto Ġ"[ WARN ]", ĊĠĠĠ ĠLogLevel . ERROR Ġto Ġ"[ ERROR ]", ĊĠĠĠ ĠLogLevel . ASSERT Ġto Ġ"[ ASSERT ]", Ċ ) Ċ Ċ @ Jvm Over loads Ċ @ Suppress (" unused ") Ċ fun ĠsetDefault Logger ( ĊĠĠĠ Ġoutput : Ġ( LogLevel , ĠString ) Ġ-> ĠUnit , ĊĠĠĠ Ġpriority Map : ĠMap < LogLevel , ĠString > Ġ= Ġdefault Priority Map , Ċ ) Ġ{ ĊĠĠĠ ĠEx vi Logger . take Log arith m () ĊĠĠĠ ĠEx vi Logger . base ( object Ġ: ĠAnt ilog () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Log ( priority : ĠLogLevel , Ġtag : ĠString ?, Ġthrowable : ĠThrowable ?, Ġmessage : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuild Ġfinal Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( priority Map [ priority ] Ġ?: Ġdefault Priority Map [ priority ]). append (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tag Ġ!= Ġnull ) Ġmsg . append ( tag ). append (": Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message Ġ!= Ġnull ) Ġmsg . append ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( throwable Ġ!= Ġnull ) Ġmsg . append ("\ n \ t "). append ( throwable . message ). append ("\ n \ t ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( throwable . stack Trace ToString (). split ("\\ s * \\ n + \\ s * "). reduce Ġ{ Ġa , Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ+ Ġ"\ n \ t \ t " Ġ+ Ġb ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog Ġthe Ġcompleted Ġlog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput ( priority , Ġmsg . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ }