我有三个类(class),我想将日志添加到共享的单个文件中。 所以每个类的构造函数都有一个
fh = new FileHandler("log.txt", true);
LOGGER_A.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
}
catch (IOException ex) {
}
fh = new FileHandler("log.txt", true);
LOGGER_B.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
}
catch (IOException ex) {
}
当我运行第二个构造函数时,它会创建一个名为“log.txt.1”的新文件。 如何避免这种情况,我想为所有类使用 log.txt 文件。
最佳答案
将相同的 FileHandler 对象添加到您的两个记录器。
FileHandler 将尝试锁定文件名,这样其他 FileHandler 就不能使用同一个文件。如果 FileHandler 无法获得锁,它会在文件名末尾追加递增的数字,直到获得文件的唯一锁。由于您的第一个 FileHandler 已经锁定了 log.txt,因此第二个 FileHandler 无法获得相同的锁定。
关于java logger单文件多类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267257/