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 . . .

しかし、その後、ログ ファイルにログ メッセージが追加されません。接続ステートメントを削除する場合、つまり

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 に答える