@ file : Suppress (" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġcom . azure . core . log Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ( c ) ĠMicrosoft ĠCorporation . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMIT ĠLicense . Ċ Ġ*/ Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . azure . core . http . Http Header Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġtim ber . log . Tim ber Ċ Ċ @ Published Api Ġinternal Ġval Ġdefault LogLevel Ġ= ĠLog . VERBOSE Ċ @ Published Api Ġinternal Ġval Ġdefault Log Tree Ġ Ġ= ĠTim ber . Debug Tree () Ċ Ċ inline Ġfun Ġv ( message : Ġ() Ġ-> ĠString ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . VERBOSE ) Ġ{ ĠTim ber . v ( message ()) Ġ} Ċ inline Ġfun Ġv ( t : ĠThrowable ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . VERBOSE ) Ġ{ ĠTim ber . v ( t ) Ġ} Ċ inline Ġfun Ġv ( t : ĠThrowable , Ġmessage : Ġ() Ġ-> ĠString ) ĠĠ Ġ= Ġlog ( Log . VERBOSE ) Ġ{ ĠTim ber . v ( t , Ġmessage ()) Ġ} Ċ Ċ inline Ġfun Ġd ( message : Ġ() Ġ-> ĠString ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . DEBUG ) Ġ{ ĠTim ber . d ( message ()) Ġ} Ċ inline Ġfun Ġd ( t : ĠThrowable ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . DEBUG ) Ġ{ ĠTim ber . d ( t ) Ġ} Ċ inline Ġfun Ġd ( t : ĠThrowable , Ġmessage : Ġ() Ġ-> ĠString ) ĠĠ Ġ= Ġlog ( Log . DEBUG ) Ġ{ ĠTim ber . d ( t , Ġmessage ()) Ġ} Ċ Ċ inline Ġfun Ġi ( message : Ġ() Ġ-> ĠString ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . INFO ) Ġ{ ĠTim ber . i ( message ()) Ġ} Ċ inline Ġfun Ġi ( t : ĠThrowable ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . INFO ) Ġ{ ĠTim ber . i ( t ) Ġ} Ċ inline Ġfun Ġi ( t : ĠThrowable , Ġmessage : Ġ() Ġ-> ĠString ) ĠĠ Ġ= Ġlog ( Log . INFO ) Ġ{ ĠTim ber . i ( t , Ġmessage ()) Ġ} Ċ Ċ inline Ġfun Ġw ( message : Ġ() Ġ-> ĠString ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . WARN ) Ġ{ ĠTim ber . w ( message ()) Ġ} Ċ inline Ġfun Ġw ( t : ĠThrowable ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . WARN ) Ġ{ ĠTim ber . w ( t ) Ġ} Ċ inline Ġfun Ġw ( t : ĠThrowable , Ġmessage : Ġ() Ġ-> ĠString ) ĠĠ Ġ= Ġlog ( Log . WARN ) Ġ{ ĠTim ber . w ( t , Ġmessage ()) Ġ} Ċ Ċ inline Ġfun Ġe ( message : Ġ() Ġ-> ĠString ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . ERROR ) Ġ{ ĠTim ber . e ( message ()) Ġ} Ċ inline Ġfun Ġe ( t : ĠThrowable ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . ERROR ) Ġ{ ĠTim ber . e ( t ) Ġ} Ċ inline Ġfun Ġe ( t : ĠThrowable , Ġmessage : Ġ() Ġ-> ĠString ) ĠĠ Ġ= Ġlog ( Log . ERROR ) Ġ{ ĠTim ber . e ( t , Ġmessage ()) Ġ} Ċ Ċ inline Ġfun Ġw tf ( message : Ġ() Ġ-> ĠString ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . ASSERT ) Ġ{ ĠTim ber . w tf ( message ()) Ġ} Ċ inline Ġfun Ġw tf ( t : ĠThrowable ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġlog ( Log . ASSERT ) Ġ{ ĠTim ber . w tf ( t ) Ġ} Ċ inline Ġfun Ġw tf ( t : ĠThrowable , Ġmessage : Ġ() Ġ-> ĠString ) Ġ= Ġlog ( Log . ASSERT ) Ġ{ ĠTim ber . w tf ( t , Ġmessage ()) Ġ} Ċ Ċ /** Ċ Ġ* ĠStart Ġlogging Ġat Ġthe Ġcurrent Ġlog Ġlevel Ċ Ġ*/ Ċ fun Ġstart Logging () Ġ{ ĊĊĠĠĠ Ġif Ġ( Tim ber . tree Count () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . plant ( default Log Tree ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠStart Ġlogging Ġat Ġthis Ġnew Ġlog Ġlevel . Ċ Ġ*/ Ċ fun Ġstart Logging ( level : ĠInt Ġ= Ġdefault LogLevel ) Ġ{ ĊĊĠĠĠ Ġlog Level Ġ= Ġlevel ĊĠĠĠ Ġstart Logging () Ċ } Ċ Ċ /** Ċ Ġ* ĠStop Ġlogging . Ċ Ġ*/ Ċ fun Ġstop Logging () Ġ{ ĊĊĠĠĠ Ġlog Level Ġ= Ġdefault LogLevel ĊĊĠĠĠ Ġif Ġ( Tim ber . forest (). contains ( default Log Tree )) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . up root ( default Log Tree ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ fun Ġconfigure Network Logging ( ok Http Builder : ĠOk HttpClient . Builder ) Ġ{ ĊĊĠĠĠ Ġif Ġ( logLevel Ġ<= ĠLog . DEBUG ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġok Http Logger Ġ= ĠHttp Logging Interceptor ( object Ġ: ĠHttp Logging Interceptor . Logger Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlog ( message : ĠString ) Ġ= Ġd Ġ{ Ġmessage Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġok Http Logger . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġ// Ġdon 't Ġlog Ġthe Ġauth Ġtoken Ġheader ĊĠĠĠĠĠĠĠ Ġok Http Logger . red act Header ( Http Header . Authorization . value ) ĊĊĠĠĠĠĠĠĠ Ġok Http Builder . add Interceptor ( ok Http Logger ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġcurrent Ġlog Ġlevel . ĠLogs Ġat Ġthis Ġlevel Ġor Ġhigher Ġwill Ġbe Ġsent Ġto Ġthe Ġsystem Ġlog Ċ Ġ*/ Ċ var Ġlog Level Ġ= Ġdefault LogLevel Ċ Ċ /** Ġ@ suppress Ġ*/ Ċ fun Ġstart Logging ( tree Ġ: ĠTim ber . Tree ){ ĊĠĠĠ ĠTim ber . plant ( tree ) Ċ } Ċ Ċ /** Ġ@ suppress Ġ*/ Ċ fun Ġstop Logging ( tree Ġ: ĠTim ber . Tree ){ ĊĠĠĠ ĠTim ber . up root ( tree ) Ċ } Ċ Ċ /** Ġ@ suppress Ġ*/ Ċ @ Published Api Ċ internal Ġinline Ġfun Ġlog ( level : ĠInt , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠ Ġif Ġ( level Ġ>= Ġlog Level Ġ&& ĠTim ber . tree Count () Ġ> Ġ 0 ) Ġblock () Ċ }