sql >> Database >  >> RDS >> Oracle

Logboekregistratie inschakelen voor SQL-instructies bij gebruik van JDBC

Update 2019:log4jdbc is sinds 2015 niet meer onderhouden. p6spy lijkt nog steeds actief te worden onderhouden.

Oorspronkelijk antwoord

Er zijn veel Spy-frameworks beschikbaar voor dit doel, kijk alstublieft naar log4jdbc, ik dacht dat dit is wat u zoekt.

Functies

  • Volledige ondersteuning voor JDBC 3 en JDBC 4!
  • Eenvoudig te configureren, in de meeste gevallen hoeft u alleen de naam van de driverklasse tonet.sf.log4jdbc.DriverSpy te wijzigen en "jdbc:log4" toe te voegen aan uw bestaande jdbc-url, uw logboekcategorieën in te stellen en u bent klaar om Gaan!
  • In de gelogde uitvoer, voor voorbereide instructies, worden de bindargumenten automatisch ingevoegd in de SQL-uitvoer. Dit verbetert de leesbaarheid en debugging in veel gevallen aanzienlijk.
  • SQL-timinginformatie kan worden gegenereerd om te helpen bepalen hoe lang het duurt voordat SQL-statements worden uitgevoerd, en helpt bij het identificeren van statements die te langzaam worden uitgevoerd. applicatie.
  • SQL-verbindingsnummerinformatie wordt gegenereerd om problemen met pooling of threading van verbindingen te helpen identificeren. Werkt met elk onderliggend JDBC-stuurprogramma, met JDK 1.4 en hoger, en SLF4J 1.x.
  • Open source software, gelicentieerd onder de bedrijfsvriendelijke Apache 2.0-licentie

Gebruik

  • Plaats de log4jdbc jar (gebaseerd op de JDK-versie) in het klassenpad van uw toepassing.
  • kies het te gebruiken logsysteem, log4j, logback, commons logging..etc worden ondersteund
  • Stel uw JDBC-stuurprogrammaklasse in op net.sf.log4jdbc.DriverSpy in de configuratie van uw toepassing. Het onderliggende stuurprogramma dat in veel gevallen wordt bespioneerd, wordt automatisch geladen zonder enige aanvullende configuratie.
  • Voeg jdbc:log4 toe aan de normale jdbc-url die u gebruikt.

    Als uw normale jdbc-url bijvoorbeeld isjdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabasethen, wijzigt u deze in:jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MijnDatabase

  • Stel uw loggers in.

    jdbc.sqlonly :registreert alleen SQL. SQL die binnen een voorbereide instructie wordt uitgevoerd, wordt automatisch weergegeven met zijn bind-argumenten vervangen door de gegevens die op die positie zijn gebonden, voor een sterk verbeterde leesbaarheid. 1.0

    jdbc.sqltiming :registreert de SQL, na de uitvoering, inclusief timingstatistieken over hoe lang het duurde om de SQL uit te voeren. 1.0

    jdbc.audit :Registreert ALLE JDBC-aanroepen behalve ResultSets. Dit is een zeer omvangrijke uitvoer en is normaal gesproken niet nodig, tenzij een specifiek JDBC-probleem wordt opgespoord. 1.0

    jdbc.resultset :Nog omvangrijker, omdat alle aanroepen naar ResultSet-objecten worden gelogd. 1.0

    jdbc.connection :registreert het openen en sluiten van verbindingen en dumpt alle open verbindingsnummers. Dit is erg handig om problemen met verbindingslekken op te sporen.



  1. Bindingsparameters voor WHERE IN-clausule met PDO

  2. Ondersteunt SQLDeveloper het uitvoeren van scripts?

  3. Waarschuwing:mysqli_query():Kan mysqli niet ophalen

  4. Datum- en tijdnotaties wijzigen in T-SQL