每当我尝试将文本放入日志文件时,Java Logger都会覆盖

时间:2017-09-25 15:43:11

标签: java file overwrite

int good = (int )(Math.random() * 6 + 1);
if(good == 1){
    JOptionPane.showMessageDialog(frame, "Green result 1");
    Logger logger = Logger.getLogger(DiceRoll.class.getName());
    FileHandler fileLog = new FileHandler("Logs.log");
    logger.addHandler(fileLog);
    logger.log(Level.INFO, "Green result 1");
}

这段代码应该(在底部)放置"绿色结果1,"到文件中,但每次运行程序时它都会覆盖文件。我如何将文本放入文件中,但不能覆盖它?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

您应append:true使用FileHandler作为:

FileHandler fileLog = new FileHandler("Logs.log", true);

其中

  

java.util.logging.FileHandler.append指定是否   FileHandler应附加到任何现有文件(默认为false)。

答案 1 :(得分:0)

试试这个

FileHandler fileLog = new FileHandler("Logs.log",true);

答案 2 :(得分:0)

改变这个:

FileHandler fileLog = new FileHandler("Logs.log");

到这个

FileHandler fileLog = new FileHandler("Logs.log", true);

提醒第二个参数指定可选的append参数。设置为true时,您将在文件末尾写入,而不会覆盖它。

查看文档:{​​{3}}

答案 3 :(得分:0)

尝试使用允许您为追加模式指定布尔参数的FileHandler constructor