Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment activer la journalisation pour les instructions SQL lors de l'utilisation de JDBC

Mise à jour 2019 :log4jdbc n'est plus maintenu depuis 2015. p6spy semble toujours être activement maintenu.

Réponse originale

Il existe de nombreux frameworks d'espionnage disponibles à cet effet, veuillez vérifier log4jdbc, je pense que c'est ce que vous recherchez.

Caractéristiques

  • Compatibilité totale avec JDBC 3 et JDBC 4 !
  • Facile à configurer, dans la plupart des cas, tout ce que vous avez à faire est de changer le nom de la classe du pilote en tonet.sf.log4jdbc.DriverSpy et d'ajouter "jdbc:log4" à votre URL jdbc existante, de configurer vos catégories de journalisation et vous êtes prêt à aller!
  • Dans la sortie journalisée, pour les instructions préparées, les arguments de liaison sont automatiquement insérés dans la sortie SQL. Cela améliore considérablement la lisibilité et le débogage dans de nombreux cas.
  • Les informations de synchronisation SQL peuvent être générées pour aider à identifier la durée d'exécution des instructions SQL, en aidant à identifier les instructions qui s'exécutent trop lentement et ces données peuvent être post-traitées avec un outil inclus pour produire des données de rapport de profilage pour identifier rapidement SQL lent dans votre application.
  • Les informations de numéro de connexion SQL sont générées pour aider à identifier les problèmes de regroupement de connexions ou de threading. Fonctionne avec n'importe quel pilote JDBC sous-jacent, avec JDK 1.4 et supérieur, et SLF4J 1.x.
  • Logiciel open source, sous la licence Apache 2.0 conviviale pour les entreprises

Utilisation

  • Placez le jar log4jdbc (basé sur la version JDK) dans le chemin de classe de votre application.
  • choisissez le système de journalisation à utiliser, log4j, logback, commons logging..etc sont pris en charge
  • Définissez votre classe de pilote JDBC sur net.sf.log4jdbc.DriverSpy dans la configuration de votre application. Le pilote sous-jacent qui est espionné dans de nombreux cas sera chargé automatiquement sans aucune configuration supplémentaire.
  • Ajoutez jdbc:log4 à l'URL normale de jdbc que vous utilisez.

    Par exemple, si votre URL jdbc normale est jdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabase, vous devez alors la remplacer par :jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MaBase

  • Configurez vos enregistreurs.

    jdbc.sqlonly :Enregistre uniquement SQL. Le SQL exécuté dans une instruction préparée est automatiquement affiché avec ses arguments de liaison remplacés par les données liées à cette position, pour une lisibilité considérablement accrue. 1.0

    jdbc.sqltiming :enregistre le SQL, après l'exécution, y compris les statistiques de temps sur la durée d'exécution du SQL. 1.0

    jdbc.audit :Enregistre TOUS les appels JDBC à l'exception des ResultSets. Il s'agit d'une sortie très volumineuse et n'est normalement pas nécessaire à moins de rechercher un problème JDBC spécifique. 1.0

    jdbc.resultset :Encore plus volumineux, car tous les appels aux objets ResultSet sont journalisés. 1.0

    jdbc.connection :enregistre les événements d'ouverture et de fermeture de connexion ainsi que le vidage de tous les numéros de connexion ouverts. Ceci est très utile pour traquer les problèmes de fuite de connexion.