package Ġat . h ann esm oser . gle am . transforms Ċ Ċ import Ġat . h ann esm oser . gle am . log . Logger Ċ import Ġorg . apache . beam . sdk . transforms . Do Fn Ċ import Ġorg . apache . beam . sdk . transforms . Par Do Ċ import Ġorg . apache . logging . log 4 j . core . net . Severity Ċ Ċ object ĠLog Ġ{ ĊĠ Ġfun Ġ< T > Ġdebug ( msg : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠ ĠPar Do . of < T , ĠT >( Writer Fn ( msg , ĠSeverity . DEBUG )) ĊĊĠ Ġfun Ġ< T > Ġinfo ( msg : ĠString Ġ= Ġ"") Ġ= ĠPar Do . of < T , ĠT >( Writer Fn ( msg , ĠSeverity . INFO )) ĊĠ Ġfun Ġ< T > Ġerror ( msg : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠ ĠPar Do . of < T , ĠT >( Writer Fn ( msg , ĠSeverity . ERROR )) Ċ } Ċ Ċ private Ġclass ĠWriter Fn < T >( ĊĠ Ġprivate Ġval Ġmsg : ĠString , ĊĠ Ġprivate Ġval Ġseverity : ĠSeverity Ċ ) Ġ: ĠDo Fn < T , ĠT >() Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval Ġlogger Ġby ĠLogger () ĊĠ Ġ} ĊĊĠ Ġ@ Process Element ĊĠ Ġfun Ġprocess ( context : ĠProcess Context ) Ġ{ ĊĠĠĠ Ġval Ġfn : Ġ( msg : ĠString ) Ġ-> ĠUnit Ġ= Ġwhen Ġ( severity ) Ġ{ ĊĠĠĠĠĠ ĠSeverity . DEBUG Ġ-> Ġlogger :: debug ĊĠĠĠĠĠ ĠSeverity . INFO Ġ-> Ġlogger :: info ĊĠĠĠĠĠ ĠSeverity . ERROR Ġ-> Ġlogger :: error ĊĠĠĠĠĠ Ġelse Ġ-> Ġlogger :: info ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġelement Ġ= Ġcontext . element () ĊĠĠĠ Ġfn ("$ msg : Ġ$ element ") ĊĠĠĠ Ġcontext . output ( element ) ĊĠ Ġ} Ċ } Ċ