0

我在这里围绕这个主题回顾了几个问题/答案,但没有什么是开箱即用的。我还阅读了官方文档中的SqlLogger部分,但我仍然找不到记录/可视化 Jdbi(版本3.x)在与数据库交互时“正在做什么”的方法?——以直截了当的方式。

我知道 Jdbi 正在使用几乎原始的 SQL,但是能够看到框架/库说它为调试目的所做的事情总是很好的,等等。

我已经尝试了几乎任何从org.jdbi(在logback.xml文件中)开始的命名空间,直到trace模式,但我只看到如下内容:

03-01-2021 19:52:26,656 |- TRACE in org.jdbi.v3.core.Jdbi:315 [reactor-http-epoll-2] - Jdbi [org.jdbi.v3.core.Jdbi@7a76fb45] obtain handle [org.jdbi.v3.core.Handle@725d5aec] in 0ms
03-01-2021 19:52:26,697 |- TRACE in org.jdbi.v3.core.Handle:187 [reactor-http-epoll-2] - Handle [org.jdbi.v3.core.Handle@725d5aec] released

这些天有没有办法做到这一点?

4

1 回答 1

1

不是 JDBI 答案,但查看原始 SQL 的更通用方法是使用 JDBC 代理,如P6Spydatasource-proxy

P6Spy 允许通过装饰DataSource或存根 JDBC 驱动程序进行拦截(无需更改代码)并以以下格式打印日志:

p6spy: #1617156635 | took 0ms | statement | connection 3|SELECT NOW()

Datasource-proxy 仅支持装饰DataSource和打印:

n.t.d.l.l.SLF4JQueryLoggingListener:
Name:, Time:0, Success:True
Type:Statement, Batch:False, QuerySize:1, BatchSize:0
Query:["SELECT NOW()"]
Params:[]
于 2021-03-31T02:14:20.183 回答