i have to update source code to log parameterize sql statement in mysql r2dbc .
this is my approach :
Index: src/main/java/dev/miku/r2dbc/mysql/message/client/TextQueryMessage.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/main/java/dev/miku/r2dbc/mysql/message/client/TextQueryMessage.java b/src/main/java/dev/miku/r2dbc/mysql/message/client/TextQueryMessage.java
--- a/src/main/java/dev/miku/r2dbc/mysql/message/client/TextQueryMessage.java (revision bdba9eebe79976aa4bb75aa0aad25c7cbbdf4dec)
+++ b/src/main/java/dev/miku/r2dbc/mysql/message/client/TextQueryMessage.java (revision 1b5e0133cc8d43bfc32133912d9e3589374ae75a)
@@ -20,6 +20,8 @@
import dev.miku.r2dbc.mysql.Parameter;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import reactor.core.publisher.Mono;
import java.nio.charset.Charset;
@@ -42,6 +44,8 @@
private final Consumer<String> sqlProceed;
+ private static final Logger logger = LoggerFactory.getLogger(TextQueryMessage.class);
+
public TextQueryMessage(List<String> sqlParts, Parameter[] values, Consumer<String> sqlProceed) {
requireNonNull(sqlParts, "sql parts must not be null");
requireNonNull(values, "values must not be null");
@@ -64,6 +68,10 @@
try {
Charset charset = context.getClientCollation().getCharset();
return ParamWriter.publish(sqlParts, values).map(sql -> {
+
+ if(logger.isDebugEnabled()){
+ logger.debug("parametered sql statement[{}]",sql);
+ }
sqlProceed.accept(sql);
ByteBuf buf = allocator.buffer(sql.length(), Integer.MAX_VALUE);
then change the log level of TextQueryMessage in logback-spring.xml:
<logger name="dev.miku.r2dbc.mysql.message.client.TextQueryMessage" level="DEBUG" additivity="false">
<appender-ref ref="async_file"/>
</logger>