2008-10-16 8 views
8

Lors de l'exécution d'un rapport Jasper dans lequel le code SQL est incorporé dans le fichier de rapport (.jrxml), est-il possible de voir le SQL exécuté? Idéalement, j'aimerais aussi voir les valeurs qui sont substituées à chacun des espaces réservés $ P {}.view SQL exécuté par rapport Jasper

Cheers,

Don

Répondre

0

Vous pouvez régler vos paramètres log4j pour ouvrir une session SQL en cours d'exécution ...

+0

Une idée de ce que les paramètres permettrait d'atteindre cet objectif? –

1

Si vous utilisez MS SQL, vous pouvez utiliser SQL profileur, pour voir toutes les requêtes exécuté sur le serveur.

EDIT: Voici un article sur l'activation de la journalisation des requêtes SQL sur le serveur MySql: http://www.howtogeek.com/howto/database/monitor-all-sql-queries-in-mysql/

+0

J'ai trouvé des instructions pour activer la journalisation des requêtes MySQL sur Windows ici: http://dotnot.org/blog/archives/2005/01/11/query-logging-in-mysql-on-windows/ –

11

JasperReports utilise l'API Logging Jakarta Commons. Commons Logging possède un mécanisme de découverte qui se connecte à l'API de journalisation que vous utilisez dans votre projet.

Vous devez configurer le consignateur nommé "net.sf.jasperreports" dans votre fichier de configuration de journalisation pour contrôler le niveau de journalisation de JasperReports.

Si vous utilisez Log4j, vous pouvez lire this section de la documentation pour des détails exacts.

Par exemple, vous pouvez écrire quelque chose comme ça dans log4j.properties fichier

log4j.logger.net.sf.jasperreports = INFO, Daily

Où "Daily" est le nom d'un appender configuré en même fichier de propriétés.

5

Une autre option consiste à utiliser p6spy. P6Spy est en quelque sorte un "pilote JDBC proxy" qui se trouve entre l'application et le vrai pilote JDBC, et il peut enregistrer tout ce qu'il voit. Vous devriez être en mesure de télécharger une copie ici: http://www.p6spy.com/

Questions connexes