我正在使用java.util.logging.Logger
类登录我的应用程序。我添加了FileHandler,以便应用程序日志直接存储在log.txt文件中。记录器无法正常工作
但由于某种原因,应用程序终止后,日志远未完成。在cmd上,我可以看到所有的语句,但它们从不附加到文件中。
我已经设置的FileHandler到记录仪:
private void setLogger() {
try {
FileHandler hand = new FileHandler("log/log.txt", true);
hand.setFormatter(new SimpleFormatter());
Logger log = Logger.getLogger(ImageRename.MAIN_LOG);
//log.setUseParentHandlers(false);
log.addHandler(hand);
log.setLevel(Level.ALL);
} catch (IOException e) {
System.out.println("Could Not set logger");
}
}
带冲洗的任何问题?如何解决它?谢谢。
PS:在调试时,我注意到,在
之间Logger.getLogger(ImageRename.MAIN_LOG).getHandlers()长度
返回0。如果它应该返回1最初它正在打印1,但在某一行它变成了零。
我认为处理日志的最好方法之一是使用[Apache log4j](http://logging.apache.org/log4j/1.2/)。这是一个易于使用和高度可定制的Java日志框架 – Sujay
避免库膨胀。我认为log4j与* current * Java日志(在Java 1.4中引入)相比几乎没有什么好处。 –
尝试以最高优先级进行日志记录,并尝试为*处理程序*设置一个级别。可能您的处理程序没有设置为在此级别登录。 –