Je souhaite consigner dans la console ou dans un fichier toutes les requêtes effectuées par Grails pour vérifier les performances.
J'avais configuré ce sans succès.
Toute idée aiderait.
Je souhaite consigner dans la console ou dans un fichier toutes les requêtes effectuées par Grails pour vérifier les performances.
J'avais configuré ce sans succès.
Toute idée aiderait.
Réglage
datasource {
...
logSql = true
}
dans DataSource.groovy (selon ces instructions) était suffisant pour que cela fonctionne dans mon environnement. Il semble que certaines parties de la FAQ soient obsolètes (par exemple, la question "plusieurs colonnes à l'envers"), de sorte que cette question pourrait également être modifiée entre-temps.
Je trouve plus utile de faire ce qui suit, c'est-à-dire permettre à la journalisation d'Hibernate de consigner le code SQL avec les variables de liaison (afin que vous puissiez voir les valeurs transmises à vos appels et répliquer facilement le code SQL dans votre éditeur ou autrement).
Dans votre fichier Conifg.groovy, ajoutez les éléments suivants à votre bloc log4j:
log4j = {
// Enable Hibernate SQL logging with param values
trace 'org.hibernate.type'
debug 'org.hibernate.SQL'
//the rest of your logging config
// ...
}
Essaye ça:
log4j = {
...
debug 'org.hibernate.SQL'
trace 'org.hibernate.type.descriptor.sql.BasicBinder'
}
Cela évite les problèmes de performances liés à la consignation de trace du paquet Hibernate type
. Cela fonctionne avec Hibernate 3.6 et supérieur. Je l'ai reçu de: https://burtbeckwith.com/blog/?p=1604
La Solution est seulement pour le développement, pas de la production.
Toutes les réponses ci-dessus sont correctes. Mais ils ne montrent pas la requête complète dans un agréable lisible par l'homme. Si vous souhaitez voir la dernière (sans ?, ?) requête, vous avez deux options.
Un proxy de votre connexion jdbc avec le log4jdbc ou p6Spy.
B) la regarder à niveau de base de données. Par exemple vraiment facile à faire avec mysql.
Trouver où vous general_log_file est. Active du journal général, si pas déjà activé.
mysql command line> show variables like "%general_log%";
mysql command line> set global general_log = true;
Maintenant, tout est connecté à vous fichier journal. Mac / linux exemple pour montrer gentil flux de vos requêtes.
tail -f path_to_log_file
Je sais que cela a été demandé et répondu à long dos .Mais je vient juste de voir cette question et ne pouvait pas arrêter de me répondre ou de partage de notre journalisation sql approche de mise en œuvre de notre projet. Espérons qu'il sera de peu d'aide.
Actuellement, il est dans un environnement de développement. Nous sommes à l'aide de "log4jdbc Pilote Espion" pour ouvrir une session sql.
Dans votre BuildConfig.groovy: ajouter ci-dessous les dépendances:
dependencies {
.....
runtime 'org.lazyluke:log4jdbc-remix:0.2.7'
}
Et dans votre source de données ou d'autres config liées :[chaque fois que vous avez défini la source de données de configuration associées] , Ajouter :
datasources{
.....
driverClassName: "net.sf.log4jdbc.DriverSpy",
url: "jdbc:log4jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = XXXXX.XX>XXX)(PORT = 1521))) (CONNECT_DATA = (SID = XXXX)(SERVER =DEDICATED)))",
....
}
log4j = {
info 'jdbc.sqlonly' //, 'jdbc.resultsettable'
}
De mon expérience personnelle, je trouve qu'il est très utile et utile lors du débogage. Également plus d'informations que vous pouvez trouver dans ce site. https://code.google.com/p/log4jdbc-remix/
Roi Ce Qui Concerne
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.