0

我创建了一个单例记录器以在我的 java 应用程序中使用。连接到 hsql 独立数据库之前的所有语句都工作正常,即正在记录消息。但是连接到数据库之后的日志记录语句没有被记录。如果我删除了连接语句,或者如果与数据库的连接失败,则该连接语句之后的语句正常工作。

为什么会这样??

ORLogger.getLogger().log(Level.INFO, "Trying to connect databse . . .");
        Class.forName("org.hsqldb.jdbc.JDBCDriver").newInstance();
        ORLogger.getLogger().log(Level.INFO, "HSQL driver loaded . . .");
        dbConnection = DriverManager.getConnection("jdbc:hsqldb:file:db/db", "username", "password");
        ORLogger.getLogger().log(Level.INFO, "Connected to databse.");

在日志文件中,日志消息由以下语句组成

HSQL driver loaded . . .

但是,在那之后,日志文件中没有添加任何日志消息。if 去掉连接语句,即

dbConnection = DriverManager.getConnection("jdbc:hsqldb:file:db/db", "username", "password");

上述连接语句之后的所有消息都运行良好。

与数据库的连接没有问题。所有与数据库相关的工作都很好。除了此日志记录无法正常工作。

4

2 回答 2

1

如果您使用 log4J 或 JDK 日志记录,HSQLDB 将更改设置,除非您有系统属性告诉它不要这样做。看这里:

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

于 2012-08-28T08:23:58.847 回答
0

您是否使用调试器来检查调用是否DriverManager.getConnection实际返回?听起来它在尝试打开连接时卡住了,并且您不会看到记录下一行,因为程序被卡住等待打开连接。

检查您的连接字符串,首先尝试使用类似的jdbc:hsqldb:mem:testdb内容,如果可行,则可能是 hsqldb 无法打开您尝试用于数据库的文件。

于 2012-08-28T06:03:46.260 回答