Java: System.setErr после первого setErr не записывает в файл - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть серверная программа, использующая System.setErr () для ведения журнала.У меня проблема с закрытием последнего PrintStream и открытием нового для записи.

Вот как он инициализируется:

File file = new File("file" + "_.txt");
for (int i = 1; file.exists(); i++) {
    file = new File(String.format("file" + "_%d.txt", i));
}

System.setErr(new PrintStream(new BufferedOutputStream(new FileOutputStream(file)), true));

Вот как он перезапускается:

System.err.flush();
System.err.close();
File file = new File("file" + "_.txt");
for (int i = 1; file.exists(); i++) {
    file = new File(String.format("file" + "_%d.txt", i));
}

System.setErr(new PrintStream(new BufferedOutputStream(new FileOutputStream(file)), true));

Проблема в том, что все, что отправлено в новый PrintStream for System.err, не печатает.Только его части печатаются, но большинство (в нескольких потоках) этого не делают.

Хотелось бы помочь, спасибо!

...