Aktualizace z roku 2019:log4jdbc není od roku 2015 udržován. Zdá se, že p6spy je stále aktivně udržován.
Původní odpověď
Pro tento účel je k dispozici mnoho Spy frameworků, zkontrolujte prosím log4jdbc, tohle je to, co hledáte.
Funkce
- Plná podpora pro JDBC 3 a JDBC 4!
- Snadná konfigurace, ve většině případů vše, co musíte udělat, je změnit název třídy ovladače tonet.sf.log4jdbc.DriverSpy a přidat „jdbc:log4“ před vaši existující adresu URL jdbc, nastavit kategorie protokolování a jste připraveni jít!
- V protokolovaném výstupu jsou pro připravené příkazy argumenty vazby automaticky vloženy do výstupu SQL. To výrazně zlepšuje čitelnost a ladění v mnoha případech.
- Je možné generovat informace o časování SQL, které pomohou určit, jak dlouho trvá spuštění příkazů SQL, což pomáhá identifikovat příkazy, které běží příliš pomalu, a tato data lze následně zpracovat pomocí přiloženého nástroje k vytvoření dat profilingreport pro rychlou identifikaci pomalého SQL ve vašem aplikace.
- Informace o čísle připojení SQL se generují, aby pomohly identifikovat problémy se sdružováním připojení nebo vlákny. Funguje s jakýmkoli základním ovladačem JDBC, s JDK 1.4 a vyšší a SLF4J 1.x.
- Software s otevřeným zdrojovým kódem, licencovaný na základě obchodní licence Apache 2.0
Využití
- Umístěte jar log4jdbc (na základě verze JDK) do třídy vaší aplikace.
- vyberte logovací systém, který chcete použít, log4j, logback, commons logging atd. jsou podporovány
- V konfiguraci aplikace nastavte třídu ovladače JDBC na net.sf.log4jdbc.DriverSpy. Základní ovladač, který je v mnoha případech sledován, bude načten automaticky bez jakékoli další konfigurace.
-
Před běžnou jdbc url, kterou používáte, přidejte jdbc:log4.
Například, pokud je vaše normální jdbc url isjdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabasethen Změnili byste ji na:jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MyDatabase
-
Nastavte si loggery.
jdbc.sqlonly :Protokoluje pouze SQL. SQL spouštěný v rámci připraveného příkazu se automaticky zobrazí s argumenty vazby nahrazenými daty vázanými na danou pozici, což výrazně zvyšuje čitelnost. 1.0
jdbc.sqltiming :Zaznamenává SQL po spuštění, včetně časových statistik o tom, jak dlouho trvalo spuštění SQL. 1.0
jdbc.audit :Zaznamenává VŠECHNA volání JDBC kromě ResultSets. Jedná se o velmi objemný výstup a není normálně potřeba, pokud se nesleduje konkrétní problém JDBC. 1.0
jdbc.resultset :Ještě objemnější, protože všechna volání objektů ResultSet jsou protokolována. 1.0
jdbc.connection :Zaznamenává události otevření a zavření připojení a také vypíše všechna čísla otevřených připojení. To je velmi užitečné při hledání problémů s netěsností připojení.