控制台内容不输出有关问题

控制台内容不输出问题
熟知,log4j可以打印log,一般也是这么用的,而且可以判断控制用不用打印,但是调用第三方jar的时候,就无力了。而我们更为熟知的System.out.prinln(e),也同样可以打出log,而且可控制控制台内容输出不输出,如下。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;

public class RedirectStdout {

    public static void main(String[] args) {
        try {
            PrintStream ps = new PrintStream(new File("tmp.txt"));
            PrintStream stdout = System.out;

            System.setOut(ps);
            System.out.println("Test string");
            System.setOut(stdout);
            ps.close();

            System.out.println("Done.");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

}