#other code&随机化
if(outcome == 1){
Logger logger = Logger.getLogger("MyLog");
FileHandler fh;
fh = new FileHandler("C:\\Temp\\Dice_roll\\Logs.txt", true);
logger.addHandler(fh);
logger.setLevel(Level.ALL);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
logger.log(Level.INFO, "Outcome 1.");
}
这应该在txt文件中添加更多文本。但是,它还会生成另一个名为Log.txt的文本文件。 1 然后如果我再次滚动它,Log.txt。 2 ,依此类推。我该如何解决这个问题?
非常感谢任何帮助。
答案 0 :(得分:1)
每次尝试登录时都要添加新的FileHandler
。
它必须只做一次!
您必须将Logger
设置与其使用区分开来。
请注意,您的记录器必须声明为static final
,否则可能会进行垃圾回收,您可能需要重新设置它。
设置代码
private static final Logger logger = Logger.getLogger("MyLog");
static {
FileHandler fh;
try {
fh = new FileHandler("C:\\Temp\\Dice_roll\\Logs.txt", true);
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
} catch (SecurityException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
logger.setLevel(Level.ALL);
}
登录
if(outcome == 1){
logger.log(Level.INFO, "Outcome 1.");
}
请注意,如果我是你,我宁愿使用configuration file。