package Ġcom . ser eb it . log kat . writ ers Ċ Ċ import Ġcom . ser eb it . log kat . LogLevel Ċ import Ġcom . ser eb it . log kat . internal . Platform Ċ Ċ /** Ċ Ġ* ĠAn Ġimplementation Ġof Ġ[ Message Writer ] Ġthat Ġoutputs Ġto Ġthe Ġconsole . ĠThis Ġwriter 's Ġoutput Ċ Ġ* Ġis Ġcolor Ġcoded Ġusing ĠANSI Ġescape Ġcodes Ġby Ġdefault , Ġunless Ġthe Ġoperating Ġsystem Ġis ĠWindows . Ċ Ġ* Ċ Ġ* Ġ@ param Ġcolored Output ĠWhether Ġor Ġnot Ġthe Ġwriter Ġshould Ġuse ĠANSI Ġcolor Ġtransforms . ĠDefaults Ġto Ġtrue . Ċ Ġ*/ Ċ class ĠConsole Writer ( colored Output : ĠBoolean Ġ= Ġtrue ) Ġ: ĠMessage Writer Ġ{ ĊĠĠĠ Ġprivate Ġval Ġuse Ansi Colors Ġ= Ġif Ġ(! Platform . supports Ansi Colors ) Ġfalse Ġelse Ġcolored Output ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( message : ĠString , Ġlevel : ĠLogLevel ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġprintln ( message . let Ġ{ Ġif Ġ( use Ansi Colors ) Ġlevel . color Transform ( it ) Ġelse Ġit Ġ}) Ċ } Ċ