将所有System.out写入文件

Joh*_*nny 4 java logging java.util.logging system.out

我有一个大型程序,我使用System.out进行调试.但我希望能够将所有System.out同时记录到一个文件中,所以即使我的程序没有在控制台中运行,所有System.out都会写入文件,我将能够看到它程序运行或以后的任何时刻.

顺便说一句,抓取所有程序并使用记录器而不是System.out语句是不明智的!

我试过java -jar myjar.jar > sysout.txt但它没有记录java logger实用程序记录的异常.

Men*_*ild 5

怎么样System.setOut(PrintStream)?您可以在程序的初始化部分插入此调用(启动).

以前是一个意见:

当然,您可以使用System.err(即System.setErr(PrintStream))执行相同操作,但最好使用不同的文件流.

详细假设一个autoflushing附加和缓冲文件流:

    String file = ...;
    PrintStream ps = 
      new PrintStream(true, new BufferedOutputStream(new FileOutputStream(file, true)));
    System.setOut(ps);
Run Code Online (Sandbox Code Playgroud)