![]() |
The Java Developers Almanac 1.4 |
|
e54. Redirecting Standard Output, and ErrorThis example replaces standard output and error with a print stream that copies its output to both the console and to a file. // All writes to this print stream are copied to two print streams
public class TeeStream extends PrintStream {
PrintStream out;
public TeeStream(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();
}
}
Here's an example that uses the class:
try {
// Tee standard output
PrintStream out = new PrintStream(new FileOutputStream("out.log"));
PrintStream tee = new TeeStream(System.out, out);
System.setOut(tee);
// Tee standard error
PrintStream err = new PrintStream(new FileOutputStream("err.log"));
tee = new TeeStream(System.err, err);
System.setErr(tee);
} catch (FileNotFoundException e) {
}
// Write to standard output and error and the log files
System.out.println("welcome");
System.err.println("error");
e49. Terminating the Application e50. Determining When the Application Is About to Exit e51. Computing Elapsed Time e52. Loading Native Code e53. Implementing a Class That Can Be Sorted e55. Getting the Size of the Heap
© 2002 Addison-Wesley. |