view SQL executed by Jasper report

2019-03-20 04:03发布

问题:

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

回答1:

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.



回答2:

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/



回答3:

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/



回答4:

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