views:

1995

answers:

4

Hi,

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

A: 

You can adjust your log4j settings to log the running SQL...

Ichorus
Any idea what settings would achieve that?
Don
+1  A: 

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/

Michał Piaskowski
I found instructions for enabling MySQL query logging on windows here:http://dotnot.org/blog/archives/2005/01/11/query-logging-in-mysql-on-windows/
Don
+4  A: 

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.

Tahir Akhtar
+2  A: 

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/

Mike Desjardins