You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Andreas Niemeyer <an...@gutzmann.com> on 2008/11/23 17:08:29 UTC
JDBC logging - sql query and bind variables sent via JDBC
Hi,
I've seen some postings around this issue.
I would like to see "merged parameters with statements" in my logs, e.g.
select * from emp where id = '4711'
Options would are
1) an extended log4j configuration
2) or the usage of tools like P6Spy or JAMon for JDBC proxy logging
The P6SPY project seems to be death over years and the jamonapi project
doesn't take "log sql with real bind variable formatting " into account.
The log4j outcome put me to much info in the logs AND especially the
assigned parameters and the prepared statement are found in 2 lines.
Maybe an additional log4j property could take this into account?
Or is there a method in the SQLMapClient planned?
I could imagine something like:
SQLMapObject obj = SqlMapClient.getSQLMapObject(name)
obj.setParameterClass(parameterMap)
obj.getSQLFormatted() OR obj.getSQLFormatted(sqlformatMap)
obj.queryForObject() OR obj.queryForList()
Many thanks for some thoughts and hints.
Kind regards,
Andreas
1) log4j config
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG, APPENDER_X
log4j.logger.java.sql.ResultSet=DEBUG
2)jdbc proxies
http://www.p6spy.com/
http://jamonapi.sourceforge.net/
Re: JDBC logging - sql query and bind variables sent via JDBC
Posted by Andreas Niemeyer <an...@gutzmann.com>.
Hi Kai,
Thank you for responding.
I think it's a must have to see what's going on.
For that I feel motivated to dig into the code (maybe next week):
- finding the places where the sql prepared statements are called
- add log4j stuff and conditions
- define 2 log4j properties to set log level and activation of logging
Regards,
Andreas
Kai Grabfelder schrieb:
> Hi Anreas,
>
> I'm not 100% sure but I don't think that there is a possibility to log this. I think you've already mentioned
> the two options that currently do exist.
>
> Regards
>
> Kai
>
> --- Original Nachricht ---
> Absender: Andreas Niemeyer
> Datum: 26.11.2008 15:39
>> Hi,
>>
>> Is there a way to get the sqlmpap object (statements) with optional
>> dynamic parts?
>>
>> Thank you in advance,
>> Andreas
>>
>>
>>
>> Andreas Niemeyer schrieb:
>>> Hi,
>>>
>>> I've seen some postings around this issue.
>>>
>>>
>>> I would like to see "merged parameters with statements" in my logs, e.g.
>>>
>>> select * from emp where id = '4711'
>>>
>>>
>>> Options would are
>>>
>>> 1) an extended log4j configuration
>>>
>>> 2) or the usage of tools like P6Spy or JAMon for JDBC proxy logging
>>>
>>>
>>> The P6SPY project seems to be death over years and the jamonapi project
>>> doesn't take "log sql with real bind variable formatting " into account.
>>>
>>>
>>> The log4j outcome put me to much info in the logs AND especially the
>>> assigned parameters and the prepared statement are found in 2 lines.
>>>
>>>
>>> Maybe an additional log4j property could take this into account?
>>>
>>>
>>> Or is there a method in the SQLMapClient planned?
>>>
>>>
>>> I could imagine something like:
>>>
>>> SQLMapObject obj = SqlMapClient.getSQLMapObject(name)
>>> obj.setParameterClass(parameterMap)
>>> obj.getSQLFormatted() OR obj.getSQLFormatted(sqlformatMap)
>>> obj.queryForObject() OR obj.queryForList()
>>>
>>>
>>>
>>> Many thanks for some thoughts and hints.
>>>
>>>
>>> Kind regards,
>>> Andreas
>>>
>>>
>>>
>>>
>>> 1) log4j config
>>>
>>> log4j.logger.com.ibatis=DEBUG
>>> log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
>>> log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
>>> log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
>>>
>>> log4j.logger.java.sql.Connection=DEBUG
>>> log4j.logger.java.sql.Statement=DEBUG
>>> log4j.logger.java.sql.PreparedStatement=DEBUG, APPENDER_X
>>> log4j.logger.java.sql.ResultSet=DEBUG
>>>
>>>
>>> 2)jdbc proxies
>>>
>>> http://www.p6spy.com/
>>> http://jamonapi.sourceforge.net/
>>>
>>>
>>>
>>>
>>>
>>
>
>
Re: JDBC logging - sql query and bind variables sent via JDBC
Posted by Kai Grabfelder <no...@kinokai.de>.
Hi Anreas,
I'm not 100% sure but I don't think that there is a possibility to log this. I think you've already mentioned
the two options that currently do exist.
Regards
Kai
--- Original Nachricht ---
Absender: Andreas Niemeyer
Datum: 26.11.2008 15:39
> Hi,
>
> Is there a way to get the sqlmpap object (statements) with optional
> dynamic parts?
>
> Thank you in advance,
> Andreas
>
>
>
> Andreas Niemeyer schrieb:
>> Hi,
>>
>> I've seen some postings around this issue.
>>
>>
>> I would like to see "merged parameters with statements" in my logs, e.g.
>>
>> select * from emp where id = '4711'
>>
>>
>> Options would are
>>
>> 1) an extended log4j configuration
>>
>> 2) or the usage of tools like P6Spy or JAMon for JDBC proxy logging
>>
>>
>> The P6SPY project seems to be death over years and the jamonapi project
>> doesn't take "log sql with real bind variable formatting " into account.
>>
>>
>> The log4j outcome put me to much info in the logs AND especially the
>> assigned parameters and the prepared statement are found in 2 lines.
>>
>>
>> Maybe an additional log4j property could take this into account?
>>
>>
>> Or is there a method in the SQLMapClient planned?
>>
>>
>> I could imagine something like:
>>
>> SQLMapObject obj = SqlMapClient.getSQLMapObject(name)
>> obj.setParameterClass(parameterMap)
>> obj.getSQLFormatted() OR obj.getSQLFormatted(sqlformatMap)
>> obj.queryForObject() OR obj.queryForList()
>>
>>
>>
>> Many thanks for some thoughts and hints.
>>
>>
>> Kind regards,
>> Andreas
>>
>>
>>
>>
>> 1) log4j config
>>
>> log4j.logger.com.ibatis=DEBUG
>> log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
>> log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
>> log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
>>
>> log4j.logger.java.sql.Connection=DEBUG
>> log4j.logger.java.sql.Statement=DEBUG
>> log4j.logger.java.sql.PreparedStatement=DEBUG, APPENDER_X
>> log4j.logger.java.sql.ResultSet=DEBUG
>>
>>
>> 2)jdbc proxies
>>
>> http://www.p6spy.com/
>> http://jamonapi.sourceforge.net/
>>
>>
>>
>>
>>
>
>
Re: JDBC logging - sql query and bind variables sent via JDBC
Posted by Andreas Niemeyer <an...@gutzmann.com>.
Hi,
Is there a way to get the sqlmpap object (statements) with optional
dynamic parts?
Thank you in advance,
Andreas
Andreas Niemeyer schrieb:
> Hi,
>
> I've seen some postings around this issue.
>
>
> I would like to see "merged parameters with statements" in my logs, e.g.
>
> select * from emp where id = '4711'
>
>
> Options would are
>
> 1) an extended log4j configuration
>
> 2) or the usage of tools like P6Spy or JAMon for JDBC proxy logging
>
>
> The P6SPY project seems to be death over years and the jamonapi project
> doesn't take "log sql with real bind variable formatting " into account.
>
>
> The log4j outcome put me to much info in the logs AND especially the
> assigned parameters and the prepared statement are found in 2 lines.
>
>
> Maybe an additional log4j property could take this into account?
>
>
> Or is there a method in the SQLMapClient planned?
>
>
> I could imagine something like:
>
> SQLMapObject obj = SqlMapClient.getSQLMapObject(name)
> obj.setParameterClass(parameterMap)
> obj.getSQLFormatted() OR obj.getSQLFormatted(sqlformatMap)
> obj.queryForObject() OR obj.queryForList()
>
>
>
> Many thanks for some thoughts and hints.
>
>
> Kind regards,
> Andreas
>
>
>
>
> 1) log4j config
>
> log4j.logger.com.ibatis=DEBUG
> log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
> log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
> log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
>
> log4j.logger.java.sql.Connection=DEBUG
> log4j.logger.java.sql.Statement=DEBUG
> log4j.logger.java.sql.PreparedStatement=DEBUG, APPENDER_X
> log4j.logger.java.sql.ResultSet=DEBUG
>
>
> 2)jdbc proxies
>
> http://www.p6spy.com/
> http://jamonapi.sourceforge.net/
>
>
>
>
>