Dropwizard 上的完整 SQL 语句记录

Full SQL statement logging on Dropwizard

我有一个使用 JDBI 和 SQL 服务器的 Dropwizard 应用程序。我想用参数记录所有 SQL 语句,但我似乎做不到。

通常建议这样做: logging: level: INFO loggers: "org.skife": TRACE "com.microsoft.sqlserver.jdbc": TRACE

但这只记录语句,没有参数:

TRACE [2016-07-08 16:40:27,711] org.skife.jdbi.v2.DBI: statement:[/* LocationDAO.detail */ EXEC [api].[GetCountryCodes] @CountryId = ?] took 487 millis DEBUG [2016-07-08 16:37:44,499] com.microsoft.sqlserver.jdbc.Connection: ENTRY /* LocationDAO.detail */ EXEC [api].[GetCountryCodes] @CountryId = ?

有什么方法可以获取针对数据库的实际语句 运行?

使用 p6spy 似乎是最简单的方法。只需添加依赖项:

<dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>2.3.1</version> </dependency>

在数据库配置中,使用 p6spy class 并稍微修改您的连接 url

database: driverClass: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:sqlserver://10.0.82.95;Database=psprd1