【问题标题】:Java Logger overwrites everytime I try to put text in a log file每次我尝试将文本放入日志文件时,Java Logger 都会覆盖
【发布时间】:2018-03-06 15:45:29
【问题描述】:
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”放入文件中,但每次运行程序时它都会覆盖该文件。我如何让它将文本放入文件中,但不覆盖它?任何帮助将不胜感激。

【问题讨论】:

    标签: java file overwrite


    【解决方案1】:

    试试这个

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

    【讨论】:

      【解决方案2】:

      尝试使用FileHandler constructor,它允许您为附加模式指定布尔参数。

      【讨论】:

        【解决方案3】:

        改变这个:

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

        到这里

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

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

        查看文档:Documentation

        【讨论】:

          【解决方案4】:

          您应该使用append:trueFileHandler 作为:

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

          在哪里

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

          【讨论】:

          • 非常感谢。
          • @DarthFigo 希望对您有所帮助。请接受它作为对未来有用的答案。
          猜你喜欢
          • 1970-01-01
          • 2017-12-25
          • 1970-01-01
          • 2014-11-18
          • 1970-01-01
          • 2018-01-26
          • 2019-01-08
          • 2012-03-06
          • 2014-10-15
          相关资源
          最近更新 更多