将所有输出定向到 MessageConsole

Directing all output to MessageConsole

目前我正在使用 MessageConsole'sMessageConsoleStream 写入控制台。


我的问题是,是否可以进行一些配置,使我写入输出流的所有内容都重定向到 MessageConsoleStream


例如,如果我发出以下命令,它应该会自动写入配置的控制台。

  1. System.out.println("txt")
  2. e.printStackTrace()
  3. 如果发生未经检查的异常(应该自动转到控制台)。

您可以重定向所有 outerr 数据,System.out.println("txt")e.printStackTrace() 打印到 out 流,而 "Unchecked excepctions" 是打印到 err 流。
在此示例中,System.out.println("txt") 会将 txt 写入 log.txt 文件。

OutputStream out = new FileOutputStream("log.txt");
PrintStream stream = new PrintStream(out);
System.setOut(stream);
System.setErr(stream);

在你的情况下你可以这样做:

MessageConsoleStream out = ...;
PrintStream stream = new PrintStream(out);
System.setOut(stream);
System.setErr(stream);