我目前正在开发一个使用标准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());
谢谢你。