Spring JDBC n'est pas la journalisation SQL avec log4j
Je suis à la recherche de printemps pour une possibilité de passage à un printemps de la pile. L'une des choses que je pensais était cool a la capacité pour le printemps jdbc pour se connecter à tous les sql exécuté. Donc je l'ai mis dans log4j, mettre en place un log4j.fichier de propriétés. et pas de sql.
ici est la log4j.fichier de propriétés:
log4j.appender.stdout=org.apache.log4j.ConsoleAppe nder
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.Patt ernLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug, stdout
log4j.category.org.springframework.jdbc.core=DEBUG
voici le résultat pour certains vraiment simple insertion sql via spring jdbc: http://pastie.org/713189
Avez-vous redémarrer le serveur? Est fixé un Seuil?
Salut phil ... Qu'avez-u ne résoudre ce problème ?
Salut phil ... Qu'avez-u ne résoudre ce problème ?
OriginalL'auteur phil swenson | 2009-11-24
Vous devez vous connecter pour publier un commentaire.
Essayer de régler ces
log4j
bûcherons. La première va cracher le SQL qui passe à travers le printempsJdbcTemplate
, le second vous donne les valeurs de paramètre que le Printemps s'annonce sur les instructions préparées.Clairement ce ne va fonctionner que si vous êtes directement ou indirectement de l'exécution de SQL à l'aide de
JdbcTemplate
.Je me sers de ce et encore il ne fonctionne pas !!!
Second ne donnent pas de valeurs dans jdbctemplate PreparedStatementSetter
Suffit d'utiliser celui-ci, vous devriez être tous ensemble: log4j.enregistreur.org.springframework.jdbc.de base.JdbcTemplate=TRACE
OriginalL'auteur serg10
Vous assurer que c'est le
log4.properties
que votre application est de ramasser? J'ai copié lelog4j.properties
que vous avez posté dans un Printemps de l'application sur ma machine locale, et j'ai eu une tonne de Printemps de débogage entrées en plus de l'JDBC de journalisation. Je ne vois pas de débogage entrées comme ça dans votre sortie.Quelques probable coupables pour votre
log4j.properties
pas se lire correctement:log4j.properties
n'est pas sur votre classpath. Vous pouvez essayer de faire unclass.getResource()
sur elle pour voir si c'est de trouver du tout.log4j.properties
sur votre classpath.OriginalL'auteur Jason Gritman
Essayer
Cela m'a aidé,
DEBUG
n'était tout simplement pas assez. Je suis à l'aide de org.springframework.jdbc-3.0.6.RELEASE.jar avec log4j-1.2.15 et slf4j (1.6.4)Pour juste un SQL (c'est à dire si vous n'êtes pas intéressé dans les limites des valeurs de paramètre)
DEBUG
devrait être suffisant.OriginalL'auteur Kroky
À partir de ma compréhension de printemps permet d'imprimer des informations lorsque vous utilisez une instruction préparée.
Voir cette discussion sur le Printemps du forum.
OriginalL'auteur DJ.
Comment êtes-vous d'exécuter le SQL? Le printemps ne sera pas magiquement journal SQL qui est envoyée à la base de données, vous devez passer par les canaux appropriés.
Par exemple, si vous exécutez SQL en utilisant
JdbcTemplate
, que ce soit directement ou par l'intermédiaire deJdbcDaoSupport
, alors oui, le SQL être connecté pour certaines opérations, mais seulement celles de ces opérations qui impliquent directement SQL.Si vous utilisez le mode veille prolongée ou déclarations préparées à l'avance, puis le Printemps n'arrive jamais à voir le SQL lui-même, et, par conséquent, ne peut pas se connecter.
Si vous avez posté un exemple de code qui a montré comment vous avez été à l'exécution de votre SQL, il serait d'une grande aide.
OriginalL'auteur skaffman
En Supposant Que Le Printemps 3.0.7.LIBÉRATION et log4j 1.2.17, nous avons eu la tâche accomplie par:
..dans nos log4j.xml.
Remplacement
<category/>
avec<logger/>
fonctionne aussi très bien.OriginalL'auteur xerx593