【问题标题】:write console output in a file and console at the same time同时将控制台输出写入文件和控制台
【发布时间】:2020-04-10 22:05:05
【问题描述】:

我想知道我是否可以让 java 将所有控制台输出写入 txt 文件而不在控制台上禁用它

PrintStream o = new PrintStream(new File("A.txt"));
PrintStream console = System.out;
System.setOut(o);
System.setOut(console);

所以我需要执行两个命令

【问题讨论】:

  • 是时候使用日志库了吗?看看这个,例如:*.com/questions/3382985/…
  • log4j 的问题是我每次都必须输入 logger.info 来记录,我只想像流一样自动完成,因为我的程序太大了
  • 此问题已在this answer 中得到解答。除了使用那里提到的自定义 TeePrintStream,您还可以使用 Apache Commons 的 TeeOutputStream
  • 请记住,如果由于某种原因您无法访问该文件,您可能根本不会有任何输出。

标签: java stream console system


【解决方案1】:

由于我的声誉,我无法发表评论。但下面的答案将解决您的问题:System.out to string

【讨论】: