【发布时间】:2019-04-17 12:37:33
【问题描述】:
我有一个通过 Windows 命令行运行的应用程序,我希望能够复制所有已发送到控制台的数据并将其附加到文件中以进行调试。每当发生异常时,都会将报告保存到包含异常堆栈跟踪和完整控制台的文件系统中。
我无法将整个控制台重定向到我的文件,因为我需要能够从用户那里获得控制台输入。
System.out.toString() 不返回控制台,而是对象本身的字符串表示形式。
【问题讨论】:
-
我认为这通常是不可能的。您可能需要编写自己的
println函数来调用一些日志记录函数,并调用System.out.println。 -
你应该使用合适的日志工具,比如 log4j,它允许你使用多个 appender。
-
将
System.setOut与您自己的自定义流一起使用,以跟踪收到的任何内容。但这不是我认为的好模式