2019-opdatering:log4jdbc er ikke blevet vedligeholdt siden 2015. p6spy ser stadig ud til at være aktivt vedligeholdt.
Oprindeligt svar
Der er mange spion-rammer til rådighed til dette formål, tjek venligst log4jdbc, jeg faldt, det er det, du leder efter.
Funktioner
- Fuld understøttelse af JDBC 3 og JDBC 4!
- Nemt at konfigurere, i de fleste tilfælde skal du bare ændre driverklassens navn tonet.sf.log4jdbc.DriverSpy og sætte "jdbc:log4" foran din eksisterende jdbc-url, opsætte dine logningskategorier, og du er klar til at gå!
- I det loggede output, for forberedte sætninger, indsættes bind-argumenterne automatisk i SQL-outputtet. Dette forbedrer i høj grad læsbarheden og fejlretningen i mange tilfælde.
- SQL-timingoplysninger kan genereres for at hjælpe med at identificere, hvor lang tid SQL-sætninger tager at køre, hjælpe med at identificere sætninger, der kører for langsomt, og disse data kan efterbehandles med et inkluderet værktøj til at producere profileringsrapportdata til hurtigt at identificere langsom SQL i din ansøgning.
- SQL-forbindelsesnummeroplysninger genereres for at hjælpe med at identificere forbindelsespooling eller trådningsproblemer. Virker med enhver underliggende JDBC-driver, med JDK 1.4 og nyere, og SLF4J 1.x.
- Open source-software, licenseret under den forretningsvenlige Apache 2.0-licens
Brug
- Placer log4jdbc jar (baseret på JDK-versionen) i din applikations klassesti.
- vælg logningssystem at bruge, log4j, logback, commons-logning..osv er understøttet
- Indstil din JDBC-driverklasse til net.sf.log4jdbc.DriverSpy i din applikations konfiguration. Den underliggende driver, som der spioneres på i mange tilfælde, indlæses automatisk uden yderligere konfiguration.
-
Sæt jdbc:log4 foran den normale jdbc-url, du bruger.
For eksempel, hvis din normale jdbc-url isjdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabasethen, vil du ændre den til:jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MyDatabase
-
Indstil dine loggere.
jdbc.sqlonly :Loger kun SQL. SQL, der udføres i en forberedt sætning, vises automatisk med dets bind-argumenter erstattet med de data, der er bundet til den position, for stærkt øget læsbarhed. 1.0
jdbc.sqltime :Logfører SQL'en, efter eksekvering, inklusive timingstatistikker over, hvor lang tid det tog at udføre SQL'en. 1.0
jdbc.audit :Loger ALLE JDBC-kald undtagen ResultSets. Dette er et meget omfangsrigt output, og det er normalt ikke nødvendigt, medmindre man sporer et specifikt JDBC-problem. 1.0
jdbc.resultset :Endnu mere omfangsrig, fordi alle kald til ResultSet-objekter logges. 1.0
jdbc.connection :Logfører forbindelse åbne og lukke begivenheder samt dumpning af alle åbne forbindelsesnumre. Dette er meget nyttigt til at søge efter problemer med forbindelseslækage.