1

私は現在、標準の 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());

ありがとうございました。

4

1 に答える 1