@@ -14,7 +14,30 @@ func DatabaseSQL(l Logger, d trace.Detailer, opts ...Option) (t trace.DatabaseSQ
1414}
1515
1616func internalDatabaseSQL (l * wrapper , d trace.Detailer ) (t trace.DatabaseSQL ) {
17- t .OnConnectorConnect = func (
17+ logger := l .logger
18+ loggerQuery := l .logQuery
19+
20+ t .OnConnectorConnect = connectorConnect (logger , d )
21+ t .OnConnPing = connPing (logger , d )
22+ t .OnConnClose = connClose (logger , d )
23+ t .OnConnBegin = connBegin (logger , d )
24+ t .OnConnPrepare = connPrepare (logger , loggerQuery , d )
25+ t .OnConnExec = connExec (logger , loggerQuery , d )
26+ t .OnConnQuery = connQuery (logger , loggerQuery , d )
27+ t .OnTxCommit = txCommit (logger , d )
28+ t .OnTxRollback = txRollback (logger , d )
29+ t .OnStmtClose = stmtClose (logger , d )
30+ t .OnStmtExec = stmtExec (logger , loggerQuery , d )
31+ t .OnStmtQuery = stmtQuery (logger , loggerQuery , d )
32+
33+ return t
34+ }
35+
36+ func connectorConnect (
37+ l Logger ,
38+ d trace.Detailer ,
39+ ) func (info trace.DatabaseSQLConnectorConnectStartInfo ) func (trace.DatabaseSQLConnectorConnectDoneInfo ) {
40+ return func (
1841 info trace.DatabaseSQLConnectorConnectStartInfo ,
1942 ) func (
2043 trace.DatabaseSQLConnectorConnectDoneInfo ,
@@ -42,8 +65,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
4265 }
4366 }
4467 }
68+ }
4569
46- t .OnConnPing = func (info trace.DatabaseSQLConnPingStartInfo ) func (trace.DatabaseSQLConnPingDoneInfo ) {
70+ func connPing (
71+ l Logger ,
72+ d trace.Detailer ,
73+ ) func (info trace.DatabaseSQLConnPingStartInfo ) func (trace.DatabaseSQLConnPingDoneInfo ) {
74+ return func (info trace.DatabaseSQLConnPingStartInfo ) func (trace.DatabaseSQLConnPingDoneInfo ) {
4775 if d .Details ()& trace .DatabaseSQLConnEvents == 0 {
4876 return nil
4977 }
@@ -65,7 +93,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
6593 }
6694 }
6795 }
68- t .OnConnClose = func (info trace.DatabaseSQLConnCloseStartInfo ) func (trace.DatabaseSQLConnCloseDoneInfo ) {
96+ }
97+
98+ func connClose (
99+ l Logger ,
100+ d trace.Detailer ,
101+ ) func (info trace.DatabaseSQLConnCloseStartInfo ) func (trace.DatabaseSQLConnCloseDoneInfo ) {
102+ return func (info trace.DatabaseSQLConnCloseStartInfo ) func (trace.DatabaseSQLConnCloseDoneInfo ) {
69103 if d .Details ()& trace .DatabaseSQLConnEvents == 0 {
70104 return nil
71105 }
@@ -87,7 +121,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
87121 }
88122 }
89123 }
90- t .OnConnBegin = func (info trace.DatabaseSQLConnBeginStartInfo ) func (trace.DatabaseSQLConnBeginDoneInfo ) {
124+ }
125+
126+ func connBegin (
127+ l Logger ,
128+ d trace.Detailer ,
129+ ) func (info trace.DatabaseSQLConnBeginStartInfo ) func (trace.DatabaseSQLConnBeginDoneInfo ) {
130+ return func (info trace.DatabaseSQLConnBeginStartInfo ) func (trace.DatabaseSQLConnBeginDoneInfo ) {
91131 if d .Details ()& trace .DatabaseSQLConnEvents == 0 {
92132 return nil
93133 }
@@ -109,13 +149,20 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
109149 }
110150 }
111151 }
112- t .OnConnPrepare = func (info trace.DatabaseSQLConnPrepareStartInfo ) func (trace.DatabaseSQLConnPrepareDoneInfo ) {
152+ }
153+
154+ func connPrepare (
155+ l Logger ,
156+ loggerQuery bool ,
157+ d trace.Detailer ,
158+ ) func (info trace.DatabaseSQLConnPrepareStartInfo ) func (trace.DatabaseSQLConnPrepareDoneInfo ) {
159+ return func (info trace.DatabaseSQLConnPrepareStartInfo ) func (trace.DatabaseSQLConnPrepareDoneInfo ) {
113160 if d .Details ()& trace .DatabaseSQLConnEvents == 0 {
114161 return nil
115162 }
116163 ctx := with (* info .Context , TRACE , "ydb" , "database" , "sql" , "conn" , "prepare" , "stmt" )
117164 l .Log (ctx , "start" ,
118- appendFieldByCondition (l . logQuery ,
165+ appendFieldByCondition (loggerQuery ,
119166 String ("query" , info .Query ),
120167 )... ,
121168 )
@@ -129,7 +176,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
129176 )
130177 } else {
131178 l .Log (WithLevel (ctx , ERROR ), "failed" ,
132- appendFieldByCondition (l . logQuery ,
179+ appendFieldByCondition (loggerQuery ,
133180 String ("query" , query ),
134181 Error (info .Error ),
135182 latencyField (start ),
@@ -139,13 +186,20 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
139186 }
140187 }
141188 }
142- t .OnConnExec = func (info trace.DatabaseSQLConnExecStartInfo ) func (trace.DatabaseSQLConnExecDoneInfo ) {
189+ }
190+
191+ func connExec (
192+ l Logger ,
193+ loggerQuery bool ,
194+ d trace.Detailer ,
195+ ) func (info trace.DatabaseSQLConnExecStartInfo ) func (trace.DatabaseSQLConnExecDoneInfo ) {
196+ return func (info trace.DatabaseSQLConnExecStartInfo ) func (trace.DatabaseSQLConnExecDoneInfo ) {
143197 if d .Details ()& trace .DatabaseSQLConnEvents == 0 {
144198 return nil
145199 }
146200 ctx := with (* info .Context , TRACE , "ydb" , "database" , "sql" , "conn" , "exec" )
147201 l .Log (ctx , "start" ,
148- appendFieldByCondition (l . logQuery ,
202+ appendFieldByCondition (loggerQuery ,
149203 String ("query" , info .Query ),
150204 )... ,
151205 )
@@ -161,7 +215,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
161215 } else {
162216 m := retry .Check (info .Error )
163217 l .Log (WithLevel (ctx , ERROR ), "failed" ,
164- appendFieldByCondition (l . logQuery ,
218+ appendFieldByCondition (loggerQuery ,
165219 String ("query" , query ),
166220 Bool ("retryable" , m .MustRetry (idempotent )),
167221 Int64 ("code" , m .StatusCode ()),
@@ -174,13 +228,20 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
174228 }
175229 }
176230 }
177- t .OnConnQuery = func (info trace.DatabaseSQLConnQueryStartInfo ) func (trace.DatabaseSQLConnQueryDoneInfo ) {
231+ }
232+
233+ func connQuery (
234+ l Logger ,
235+ loggerQuery bool ,
236+ d trace.Detailer ,
237+ ) func (info trace.DatabaseSQLConnQueryStartInfo ) func (trace.DatabaseSQLConnQueryDoneInfo ) {
238+ return func (info trace.DatabaseSQLConnQueryStartInfo ) func (trace.DatabaseSQLConnQueryDoneInfo ) {
178239 if d .Details ()& trace .DatabaseSQLConnEvents == 0 {
179240 return nil
180241 }
181242 ctx := with (* info .Context , TRACE , "ydb" , "database" , "sql" , "conn" , "query" )
182243 l .Log (ctx , "start" ,
183- appendFieldByCondition (l . logQuery ,
244+ appendFieldByCondition (loggerQuery ,
184245 String ("query" , info .Query ),
185246 )... ,
186247 )
@@ -196,7 +257,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
196257 } else {
197258 m := retry .Check (info .Error )
198259 l .Log (WithLevel (ctx , ERROR ), "failed" ,
199- appendFieldByCondition (l . logQuery ,
260+ appendFieldByCondition (loggerQuery ,
200261 String ("query" , query ),
201262 Bool ("retryable" , m .MustRetry (idempotent )),
202263 Int64 ("code" , m .StatusCode ()),
@@ -209,7 +270,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
209270 }
210271 }
211272 }
212- t .OnTxCommit = func (info trace.DatabaseSQLTxCommitStartInfo ) func (trace.DatabaseSQLTxCommitDoneInfo ) {
273+ }
274+
275+ func txCommit (
276+ l Logger ,
277+ d trace.Detailer ,
278+ ) func (info trace.DatabaseSQLTxCommitStartInfo ) func (trace.DatabaseSQLTxCommitDoneInfo ) {
279+ return func (info trace.DatabaseSQLTxCommitStartInfo ) func (trace.DatabaseSQLTxCommitDoneInfo ) {
213280 if d .Details ()& trace .DatabaseSQLTxEvents == 0 {
214281 return nil
215282 }
@@ -231,7 +298,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
231298 }
232299 }
233300 }
234- t .OnTxRollback = func (info trace.DatabaseSQLTxRollbackStartInfo ) func (trace.DatabaseSQLTxRollbackDoneInfo ) {
301+ }
302+
303+ func txRollback (
304+ l Logger ,
305+ d trace.Detailer ,
306+ ) func (info trace.DatabaseSQLTxRollbackStartInfo ) func (trace.DatabaseSQLTxRollbackDoneInfo ) {
307+ return func (info trace.DatabaseSQLTxRollbackStartInfo ) func (trace.DatabaseSQLTxRollbackDoneInfo ) {
235308 if d .Details ()& trace .DatabaseSQLTxEvents == 0 {
236309 return nil
237310 }
@@ -253,7 +326,13 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
253326 }
254327 }
255328 }
256- t .OnStmtClose = func (info trace.DatabaseSQLStmtCloseStartInfo ) func (trace.DatabaseSQLStmtCloseDoneInfo ) {
329+ }
330+
331+ func stmtClose (
332+ l Logger ,
333+ d trace.Detailer ,
334+ ) func (info trace.DatabaseSQLStmtCloseStartInfo ) func (trace.DatabaseSQLStmtCloseDoneInfo ) {
335+ return func (info trace.DatabaseSQLStmtCloseStartInfo ) func (trace.DatabaseSQLStmtCloseDoneInfo ) {
257336 if d .Details ()& trace .DatabaseSQLStmtEvents == 0 {
258337 return nil
259338 }
@@ -275,13 +354,20 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
275354 }
276355 }
277356 }
278- t .OnStmtExec = func (info trace.DatabaseSQLStmtExecStartInfo ) func (trace.DatabaseSQLStmtExecDoneInfo ) {
357+ }
358+
359+ func stmtExec (
360+ l Logger ,
361+ loggerQuery bool ,
362+ d trace.Detailer ,
363+ ) func (info trace.DatabaseSQLStmtExecStartInfo ) func (trace.DatabaseSQLStmtExecDoneInfo ) {
364+ return func (info trace.DatabaseSQLStmtExecStartInfo ) func (trace.DatabaseSQLStmtExecDoneInfo ) {
279365 if d .Details ()& trace .DatabaseSQLStmtEvents == 0 {
280366 return nil
281367 }
282368 ctx := with (* info .Context , TRACE , "ydb" , "database" , "sql" , "stmt" , "exec" )
283369 l .Log (ctx , "start" ,
284- appendFieldByCondition (l . logQuery ,
370+ appendFieldByCondition (loggerQuery ,
285371 String ("query" , info .Query ),
286372 )... ,
287373 )
@@ -296,7 +382,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
296382 )
297383 } else {
298384 l .Log (WithLevel (ctx , ERROR ), "failed" ,
299- appendFieldByCondition (l . logQuery ,
385+ appendFieldByCondition (loggerQuery ,
300386 String ("query" , query ),
301387 Error (info .Error ),
302388 latencyField (start ),
@@ -306,13 +392,20 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
306392 }
307393 }
308394 }
309- t .OnStmtQuery = func (info trace.DatabaseSQLStmtQueryStartInfo ) func (trace.DatabaseSQLStmtQueryDoneInfo ) {
395+ }
396+
397+ func stmtQuery (
398+ l Logger ,
399+ loggerQuery bool ,
400+ d trace.Detailer ,
401+ ) func (info trace.DatabaseSQLStmtQueryStartInfo ) func (trace.DatabaseSQLStmtQueryDoneInfo ) {
402+ return func (info trace.DatabaseSQLStmtQueryStartInfo ) func (trace.DatabaseSQLStmtQueryDoneInfo ) {
310403 if d .Details ()& trace .DatabaseSQLStmtEvents == 0 {
311404 return nil
312405 }
313406 ctx := with (* info .Context , TRACE , "ydb" , "database" , "sql" , "stmt" , "query" )
314407 l .Log (ctx , "start" ,
315- appendFieldByCondition (l . logQuery ,
408+ appendFieldByCondition (loggerQuery ,
316409 String ("query" , info .Query ),
317410 )... ,
318411 )
@@ -326,7 +419,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
326419 )
327420 } else {
328421 l .Log (WithLevel (ctx , ERROR ), "failed" ,
329- appendFieldByCondition (l . logQuery ,
422+ appendFieldByCondition (loggerQuery ,
330423 String ("query" , query ),
331424 Error (info .Error ),
332425 latencyField (start ),
@@ -336,6 +429,4 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
336429 }
337430 }
338431 }
339-
340- return t
341432}
0 commit comments