package Ġpl uto . chess . engine Ċ Ċ import Ġjava . io . IOException Ċ import Ġjava . io . OutputStream Ċ import Ġjava . io . OutputStream Writer Ċ import Ġjava . io . Print Stream Ċ Ċ class ĠOutputStream Engine Logger ( output : ĠOutputStream ) Ġ: ĠEngine Logger Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġdebug Enabled Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġdebug Writer Ġ= ĠOutputStream Writer ( output ) ĊĠĠĠ Ġprivate Ġval Ġerror Stream Ġ= ĠPrint Stream ( output ) ĊĊĠĠĠ Ġoverride Ġfun Ġlog Debug ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( debug Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Writer . append ( message ). append ( NEW LINE ). flush () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlog Error ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrowable . printStackTrace ( error Stream ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Stream . flush () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠNEW LINE Ġ= ĠSystem . getProperty (" line . separator ") ĊĠĠĠ Ġ} Ċ }