Есть ли способ сохранить весь вывод консоли в файл при многопоточности? Я работаю с 5 потоками. У меня была эта идея, что я могу поместить printstream в run-method.Консольный вывод в файл с использованием многопоточности
пример:
public void run() {
try{
PrintStream out = new PrintStream(file);
stopExecute stop = new stopExecute();
Thread t = new Thread(stop);
Scanner in = new Scanner(System.in);
t.start();
while (!in.hasNextLine())
{
classThatUsingMultipleThrads();
System.out.println("Finished");
anotherClassThatUsingThreads();
System.out.println("Finished");
}
System.out.prinln("User stopped the execution");
stop.keepRunning = false;
System.setOut(out);
}
catch(IOException e){System.out.println(e);}
Проблема здесь в том, что это только экономия на выходе «купирован пользователя исполнение» и все в whileloop не сохраняются. Или выход из других классов.
Я пытался поставить
System.setOut(out);
в то время как петли, но не помогло.
Edit: коррекция Spell
«Закончено», а не «финишировано» :) Ох. И «остановился», а не «остановился». –
Использует ли система ведения журнала, например Log4J, ваше дело? –
@ C-Otto Спасибо за исправление, я каждый день изучаю новые вещи :) – Micropop