如何将我的Java控制台输出记录到Log1.txt,Log2.txt等? 我目前正在使用此代码:
def function(series):
if series['column_of_ints'] >= 0 and series['column_of_ints'] < 100:
return series['column_of_ints']
elif series['column_of_ints'] >= 100 and series['column_of_ints'] < 200:
return series['column_of_ints'] + 1
else:
return series['column_of_ints'] + 2
df['column_of_ints_v2'] = df['column_of_ints'].apply(function, axis=1)
但这取代了我不想要的旧日志。我想要它,例如,如果有log1.txt我希望它登录到log2.txt而不是替换log1.txt 如果有人能帮我解决这个问题,那就太棒了!
答案 0 :(得分:0)
为了避免覆盖现有的日志文件,您必须测试日志文件是否已经存在,或者更好的是,维护一个计数器来跟踪已经创建的日志文件的数量。
在某个地方,你必须有类似的东西:
int logCount = 1;
PrintStream out = new PrintStream(new FileOutputStream("output" + String.valueOf(logCount) + ".txt"));
// Remember to increment the counter after the log file is written
logCount++;
答案 1 :(得分:0)
您可以使用以下内容:
try {
String outputFileName = "output.txt";
File file = new File(outputFileName);
for(int i = 0; file.exists(); i++){
file = new File("output"+i+".txt");
}
PrintStream out = new PrintStream(new FileOutputStream(file));
System.setOut(out);
} catch (IOException e) {
e.printStackTrace();
}