如何将我的Java控制台输出记录到Log1.txt,Log2.txt等?

时间:2015-04-26 20:09:03

标签: java logging text-files

如何将我的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 如果有人能帮我解决这个问题,那就太棒了!

2 个答案:

答案 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();
    }