Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como habilitar o log para instruções SQL ao usar JDBC


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.