从HSQLDB中记录SQL表达式

时间:2012-02-08 11:55:12

标签: logging hsqldb

我在我的应用程序中使用HSQLDB。现在我需要记录每个执行的sql语句。我不想自己处理SQL日志。在HSQLDB中有没有一种标准的方法呢?

2 个答案:

答案 0 :(得分:11)

HSQLDB 2.2.x支持SQL日志记录。假设您的数据库名为test,并使用JDBC URL jdbc:hsqldb:file:test

进行连接
  1. test.log是HSQLDB内部使用的数据更改日志。它不包含SELECT语句。它由HSQLDB创建和删除。这不是你想要的。

  2. test.sql.log是包含所有带有时间和会话信息的SQL语句以及预准备语句的任何参数的日志。如果您使用:

    ,则会创建此日志

    SET DATABASE EVENT LOG SQL LEVEL 3

  3. 它包含以下条目:

    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') 
    

    您可以在网址

    上使用hsqldb.sqllog = 3
    1. test.sql.app.log是包含内部持久性操作的条目的日志。这与执行的SQL语句无关。
    2. 请参阅此处的指南并查看本章末尾的命令和属性语法:

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

答案 1 :(得分:1)

不是特定于HSQLDB,但如果您的客户端使用JDBC,也许最简单的方法来记录SQL语句就是使用JDBC驱动程序包装器。有很多implementations可供选择。