使用logback记录spring JdbcTemplate的sql参数

时间:2014-08-24 19:28:19

标签: spring logback jdbctemplate

我正在使用 Logback Spring JdbcTemplate 来记录我的SQL查询。我的配置包含下一行:

<logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG" />

但是,这仅记录带有通配符?的查询而没有参数列表。

在这里,我找到了一些答案如何使用 log4j 实现参数记录。但我不想切换到 log4j

那么如何通过 Logback 接收 JdbcTemplate 的参数列表?

修改

实际上,如果重要的话,我正在使用NamedParameterJdbcTemplate

2 个答案:

答案 0 :(得分:10)

试试这个

<logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="TRACE" />

这将显示log:

设置SQL语句参数值:列索引1,参数值[1234],值类[java.lang.Integer],SQL类型未知

答案 1 :(得分:0)

我通常更喜欢在DataSource或JDBC驱动程序级别处理SQL语句日志记录。

我使用BoneCP数据源/连接池库,其中包括通过SLF4J和许多其他有用的features支持语句记录。

如果不能更改您的DataSource /连接池库,也许您可​​以使用log4jdbc作为代理jdbc驱动程序,它在调用实际的jdbc驱动程序之前将语句记录到SLF4J到数据库。