我想要做的是记录,而不是重定向java System.out
和System.err
。我希望能够保存打印出来的所有内容,同时仍然将其实际打印到控制台/默认目的地。我无法改变运行时。我需要它在Java进程中执行此操作,因为它将在Bukkit插件中。谢谢!
答案 0 :(得分:3)
您可以保存System.out
和System.err
的原始值,扩展PrintStream
以创建一个记录输出的类,并将其转发给另一个PrintStream
。
然后你可以做
System.setOut(new RecordingStream(System.out));
System.setErr(new RecordingStream(System.err));