Atualização de 2019:o log4jdbc não é mantido desde 2015. O p6spy ainda parece ser mantido ativamente.
Resposta original
Existem muitos frameworks de espionagem disponíveis para esta finalidade, por favor verifique log4jdbc, eu senti que é isso que você está procurando.
Recursos
- Suporte total para JDBC 3 e JDBC 4!
- Fácil de configurar, na maioria dos casos tudo o que você precisa fazer é alterar o nome da classe do driver tonet.sf.log4jdbc.DriverSpy e acrescentar "jdbc:log4" ao seu URL jdbc existente, configurar suas categorias de registro e você está pronto para vai!
- Na saída registrada, para instruções preparadas, os argumentos de ligação são inseridos automaticamente na saída SQL. Isso melhora muito a legibilidade e a depuração em muitos casos.
- As informações de tempo do SQL podem ser geradas para ajudar a identificar quanto tempo as instruções SQL levam para serem executadas, ajudando a identificar instruções que estão sendo executadas muito lentamente e esses dados podem ser pós-processados com uma ferramenta incluída para produzir dados de relatório de perfil para identificar rapidamente SQL lento em seu aplicativo.
- As informações do número de conexão SQL são geradas para ajudar a identificar problemas de encadeamento ou pool de conexão. Funciona com qualquer driver JDBC subjacente, com JDK 1.4 e superior e SLF4J 1.x.
- Software de código aberto, licenciado sob a licença Apache 2.0 amigável para negócios
Uso
- Coloque o jar log4jdbc (com base na versão do JDK) no classpath do seu aplicativo.
- escolha o sistema de registro para usar, log4j, logback, registro comum..etc são suportados
- Defina sua classe de driver JDBC como net.sf.log4jdbc.DriverSpy na configuração do seu aplicativo. O driver subjacente que está sendo espionado em muitos casos será carregado automaticamente sem qualquer configuração adicional.
-
Anexe jdbc:log4 ao URL jdbc normal que você está usando.
Por exemplo, se o seu url jdbc normal for jdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabase, então você o alteraria para:jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MyDatabase
-
Configure seus registradores.
jdbc.sqlonly :Registra apenas SQL. O SQL executado em uma instrução preparada é mostrado automaticamente com seus argumentos de ligação substituídos pelos dados vinculados nessa posição, para maior legibilidade. 1,0
jdbc.sqltiming :registra o SQL, pós-execução, incluindo estatísticas de tempo sobre quanto tempo o SQL levou para ser executado. 1,0
jdbc.audit :Registra TODAS as chamadas JDBC, exceto ResultSets. Esta é uma saída muito volumosa e normalmente não é necessária, a menos que rastreie um problema específico de JDBC. 1,0
jdbc.resultset :Ainda mais volumoso, porque todas as chamadas para objetos ResultSet são registradas. 1,0
jdbc.connection :Registra eventos de abertura e fechamento de conexão, bem como despeja todos os números de conexão aberta. Isso é muito útil para procurar problemas de vazamento de conexão.