package Ġlogging Ċ Ċ interface ĠApp ender Ġ{ ĊĠĠĠ Ġfun Ġappend ( level : ĠLogLevel , Ġmsg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) ĊĠĠĠ Ġfun Ġappend ( var arg Ġo : ĠAny ?) ĊĊĠĠĠ Ġfun Ġlog ( var arg Ġo : ĠAny ?) Ġ= Ġobj (* o ) ĊĠĠĠ Ġfun Ġlog ( msg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . DEBUG , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġdebug ( msg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . DEBUG , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġinfo ( msg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . INFO , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġwarn ( msg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . WARNING , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġerror ( msg : ĠString , Ġc : ĠThrowable ?, Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . ERROR , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġerror ( msg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . ERROR , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġerror ( c : ĠThrowable ?) Ġ= Ġerror ( c ?. message Ġ?: Ġ" Unknown ĠError ", Ġc ) ĊĠĠĠ Ġfun Ġfailure ( msg : ĠString , Ġc : ĠThrowable ?, Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . FAILURE , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġfailure ( msg : ĠString , Ġvar arg Ġdata : ĠPair < String , ĠAny ?> ) Ġ= ĊĠĠĠĠĠĠĠ Ġappend ( level Ġ= ĠLogLevel . FAILURE , Ġmsg Ġ= Ġmsg , Ġdata Ġ= Ġ* data ) ĊĊĠĠĠ Ġfun Ġfailure ( c : ĠThrowable ?) Ġ= Ġfailure ( c ?. message Ġ?: Ġ" Unknown ĠError ", Ġc ) ĊĠĠĠ Ġfun Ġobj ( var arg Ġobj : ĠAny ?) Ġ= Ġappend (* obj ) Ċ }