jdbcを初めて使用し、前に書いたSQLクエリを含むファイルから読み込みます。クエリは適切に実行され、私のプログラムは明らかな問題がなくなりますが、statement.executeBatch();
の後は、もうログに何も書き込めません。jdbcを使用中にログに記録する
- 私はを使用してFileHandler
でログを記録しています。私の ".sql"ファイルを読むために、私はBufferedReader
とFileReader
を使用しています。私は文脈を完全に理解するために多くのコードを共有しているわけではないことを知っていますが、それは私がメモリから得たものです。私は使用後にすべての読者を閉じています。
何が問題なのでしょうか?
MyLogger.log(Level.WARNING, "it does write");
statement.executeBatch();
MyLogger.log(Level.WARNING, "it doesn't write anymore");
statement.close();
MyLogger.log(Level.WARNING, "still doesn't");
おかげ
編集:statigログ方法と MyLoggerがクラスである
EDIT2: @Tim Biegeleisen statement.executeBatch()
intの配列、各バッチのための1つを返します。私は試しました:
try {
int[] results = statement.executeBatch();
for (int result : results)
{
if (result == Statement.EXECUTE_FAILED)
{
MyLogger.log(Level.SEVERE, "batch failed, but driver seems to still be alive.");
System.out.println("batch failed, but driver seems to still be alive.");
}
}
} catch (SQLException e) {
MyLogger.log(Level.SEVERE, "the batch failed, and the driver died too.");
System.out.println("the batch failed, and the driver died too.");
}
それは印刷され、何も記録されませんでした。
edit3:私は、シャットダウンフックをあまりにも多く求めていたと思います。私はそれに精通していないので、正確に何が問題だったのか分かりません。
MyLoggerとは何ですか?それはロガーの(ひどい名前の)インスタンスですか、それとも静的ログメソッドを含むクラスですか?クラスの場合は、少なくともそのクラスのコードを投稿する必要があります。 – haggisandchips
...とロギング設定。 – haggisandchips
私はあなたに幾分投機的な答えをくれましたが、少なくともあなたはいくつかの可能な説明を除外させます。 –