私は現在、標準の Java ロガー (つまり、java.util.logging.Logger) を使用している Java プロジェクトに取り組んでいます。コードで処理されない予期しない例外が発生すると、プログラムは閉じますが、ロガーはテキスト ファイルのロックを解放しません。
コード内の予期しない例外が出力ファイルに記録され、出力ファイルを閉じて終了するようにコードを調整する方法はありますか?
関連する場合のコード
私は CustomLogging クラスを持っています:
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class CustomLogging
{
static private FileHandler txtFileHandle;
static private SimpleFormatter formatterTxt;
static public void initalise() throws IOException
{
//Global logger configuration
Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
logger.setLevel(Level.INFO);
txtFileHandle = new FileHandler("Logging.txt");
formatterTxt = new SimpleFormatter();
txtFileHandle.setFormatter(formatterTxt);
logger.addHandler(txtFileHandle);
}
static public void shutdown() throws IOException
{
txtFileHandle.close();
}
}
CustomLogger クラスの初期化メソッドは、最初の Java Swing GUI のコンストラクターでプログラムの起動時に呼び出されます。
public StartMenu()
{
try
{
CustomLogging.initalise();
}
catch (Exception e)
{
//Placeholder, will fix this up
}
//Other code....
}
他のすべてのクラスは、次の方法でアクセスできます。
private final static Logger logger = Logger.getLogger(MyClassNameHere.class.getName());
ありがとうございました。