Java tutorial
import java.io.FileOutputStream; import java.io.PrintStream; public class Main { public static void main(String[] argv) throws Exception { System.setOut(new LogStream(System.out, new PrintStream(new FileOutputStream("out.log")))); System.setErr(new LogStream(System.err, new PrintStream(new FileOutputStream("err.log")))); System.out.println("output"); System.err.println("error"); } } class LogStream extends PrintStream { PrintStream out; public LogStream(PrintStream out1, PrintStream out2) { super(out1); this.out = out2; } public void write(byte buf[], int off, int len) { try { super.write(buf, off, len); out.write(buf, off, len); } catch (Exception e) { } } public void flush() { super.flush(); out.flush(); } }