Hook into System.out.println(); and modify
You can change the PrintStream
that is used as the standard output:
System.setOut(PrintStream out)
Create your own PrintStream
implementation which prints whatever extra info you want to the (old) standard output, and set it with:
System.setOut(myStream);
Example:
The following example prints the current time millis before each printed String
that is printed with PrintStream.println(String x)
method:
PrintStream myStream = new PrintStream(System.out) {
@Override
public void println(String x) {
super.println(System.currentTimeMillis() + ": " + x);
}
};
System.setOut(myStream);
System.out.println("Hello World!");
Output:
1420553422337: Hello World!
Note:
This example only overrides the PrintStream.println(String x)
method, so calling other print methods of PrintStream
would not add the time stamp to the output.