type hypersql data create logging hsqldb

logging - hypersql - Registro de expresiones SQL desde HSQLDB



hsqldb data type (2)

Yo uso HSQLDB en mi aplicación. Ahora necesito registrar cada sentencia sql que se ejecutó. No quiero manejar SQL-logging yo mismo. ¿Hay alguna forma estándar de hacerlo desde HSQLDB?


No HSQLDB específico, pero si su cliente está utilizando JDBC quizás la forma más fácil de registrar sentencias SQL es usar el contenedor JDBC. Hay muchas implementaciones para elegir.


HSQLDB 2.2.x admite el registro SQL. Supongamos que su base de datos se llama test y se conecta utilizando la JDBC URL jdbc:hsqldb:file:test

  1. test.log es el registro de cambio de datos utilizado internamente por HSQLDB. No contiene declaraciones SELECT. Es creado y eliminado por HSQLDB. Esto no es lo que estás buscando.

  2. test.sql.log es el registro que contiene todas las declaraciones SQL con información de tiempo y sesión, junto con cualquier argumento para las declaraciones preparadas. Este registro se crea si usa:

    SET DATABASE EVENT LOG SQL NIVEL 3

Contiene entradas como estas:

2012-02-08 22:19:36.484 DETAIL 4 CALL USER() 2012-02-08 22:19:36.484 DETAIL 4 call database_version() 2012-02-08 22:19:36.484 DETAIL 4 COMMIT 2012-02-08 22:19:36.500 DETAIL 4 INSERT INTO Customer VALUES(0,''Laura'',''Steel'',''429 Seventh Av.'',''Dallas'')

Puede usar hsqldb.sqllog = 3 en la URL

  1. test.sql.app.log es el registro que contiene entradas para operaciones internas de persistencia. Esto no está relacionado con las sentencias SQL ejecutadas.

Consulte la Guía aquí y compruebe el comando y la sintaxis de la propiedad al final del capítulo:

http://hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_monitoring_operation