Andrew Sumsion
Andrew Sumsion

Reputation: 46

Recording Java stdout and stderr

What I would like to do is record not redirect java System.out and System.err. I want to be able to save everything that is printed out, while still having it actually print to the console/default destination. I can't change the runtime. I need it to do this in the Java process, seeing as it will be in a Bukkit plugin. Thanks!

Upvotes: 1

Views: 297

Answers (1)

Kayaman
Kayaman

Reputation: 73538

You can save the original values of System.out and System.err, extend PrintStream to create a class that records the output and forwards it to another PrintStream.

Then you can just do

System.setOut(new RecordingStream(System.out));
System.setErr(new RecordingStream(System.err));

Upvotes: 3

Related Questions