/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠNet flix , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . netflix . spin n aker . or ca . sql Ċ Ċ import Ġcom . netflix . spin n aker . k ork . dynamic config . Dynamic Config Service Ċ import Ġorg . jooq . Execute Context Ċ import Ġorg . jooq . impl . Default Execute Listener Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util . regex . Pattern Ċ import Ġjava . util . regex . Pattern Syntax Exception Ċ Ċ /** Ċ Ġ* ĠSimple Ġquery Ġlogger , Ġfor Ġwhen Ġyou Ġdon 't / can 't Ġrun Ġgeneral Ġquery Ġlogging Ġin Ġprod Ġ( looking Ġat Ġyou , ĠA ur ora ). Ċ Ġ* Ċ Ġ* ĠWhen Ġenabled , Ġhealth check Ġqueries Ġwill Ġnot Ġbe Ġreported Ġby Ġdefault . Ċ Ġ*/ Ċ class ĠQuery Logger ( ĊĠ Ġprivate Ġval Ġdynamic Config Service : ĠDynamic Config Service Ċ ) Ġ: ĠDefault Execute Listener () Ġ{ ĊĊĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( java Class ) ĊĊĠ Ġoverride Ġfun Ġend ( ctx : ĠExecute Context ) Ġ{ ĊĠĠĠ Ġif Ġ( dynamic Config Service . isEnabled (" sql . query - logger ", Ġfalse )) Ġ{ ĊĠĠĠĠĠ Ġval Ġstatements Ġ= Ġctx . batch SQL (). join ToString ("\ n ") ĊĠĠĠĠĠ Ġval Ġexclude Ġ= Ġdynamic Config Service . getConfig ( ĊĠĠĠĠĠĠĠ ĠString :: class . java , ĊĠĠĠĠĠĠĠ Ġ" sql . query - logger . exclude - pattern ", ĊĠĠĠĠĠĠĠ Ġ" .* health check .* " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġif Ġ( exclude . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpattern : ĠPattern ? Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠPattern . compile ( exclude ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPattern Syntax Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġlog . error (" Ex clusion Ġpattern Ġinvalid : Ġ'$ exclude '", Ġe ) ĊĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( pattern ?. matcher ( statements )?. matches () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġlog . debug ( statements ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ