有没有办法使用MariaDB jdbc驱动程序在java 中记录查询?
使用MySQL驱动程序,我正在使用
profileSQL=true
logger=com.mysql.jdbc.log.Slf4JLogger
在dev机器上记录查询(使调试变得更容易)。
我意识到存在log4jdbc之类的东西 - 我是否需要使用这样的库,或者mariadb驱动程序是否内置了某些内容?
答案 0 :(得分:1)
如Per Lundberg所言,从1.5.0版开始可以进行日志记录,请参见here。
要激活它,我在数据库URL中添加了&log=true
。但是,这还不够。如here所述,还需要执行以下步骤:
首先,我们需要添加一些依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>[1.4.0,1.7.25]</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
然后,我们需要像给定示例中那样配置logback:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.mariadb.jdbc" level="trace" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="error">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
“跟踪”日志级别提供了大量信息,因此您可能要使用另一个信息。当前支持的日志级别为:跟踪,调试,信息,警告或错误
答案 1 :(得分:0)
目前无法从mariadb java客户端登录sql查询。
然而另一种方法是,如果可以提供帮助,可以使用 dumpQueriesOnException 。
答案 2 :(得分:0)
从1.5.0开始,log is supported。