Я пытаюсь перехватить System.out и System.err, но сохраняю способность писать исходные потоки, когда это необходимо.
PrintStream ps = System.out;
System.setOut(new MyMagicPrintStream());
ps.println("foo");
К сожалению, детали реализации класса System означают, что в моем примере "foo" отправляется в MyMagicPrintStream, чтобы начать реальную запись. Кто-нибудь знает, как получить ссылки на реальные/исходные OutputStreams.
Спасибо!
PS: В противном случае это приведет к созданию StackOverflowError < - для SEO.