When running a Jasper report in which the SQL is embedded in the report file (.jrxml), is it possible to see the SQL that is executed? Ideally, I'd also like to see the values that are substituted for each of the $P{} placeholders.
Cheers,
Don
When running a Jasper report in which the SQL is embedded in the report file (.jrxml), is it possible to see the SQL that is executed? Ideally, I'd also like to see the values that are substituted for each of the $P{} placeholders.
Cheers,
Don
JasperReports uses the Jakarta Commons Logging API. Commons Logging has a discovery mechanism that connects to logging API you are using in your project.
You need to configure logger named "net.sf.jasperreports" in your logging configuration file to control the logging level of JasperReports.
If you are using Log4j, you can read this section of there documentation for exact details.
For example you may write something like this in log4j.properties file
log4j.logger.net.sf.jasperreports=INFO, Daily
Where "Daily" is name of an appender configured in same properties file.
You can adjust your log4j settings to log the running SQL...
If you're using Ms SQL you can use sql profiler, to see every query executed on the server.
EDIT: Here is an article on enabling sql query logging on MySql server: http://www.howtogeek.com/howto/database/monitor-all-sql-queries-in-mysql/
Another option is to use p6spy. P6Spy is sort of a "proxy JDBC driver" that sits between the app and the real JDBC driver, and it can log everything that it sees. You should be able to download a copy here: http://www.p6spy.com/