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
我有一个使用 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