我们如何将eclipse控制台输出重定向到文件?我可以:
Run Configuration
->Commons
->Select a file
.System.setOut(PrintStream)
和System.setErr(PrintStream)
.1)的问题是,我需要将控制台输出记录到不同的文件中,而不是一个文件中。
2)的问题是,它只存储System.out.println()
或堆栈跟踪抛出的异常生成的控制台输出。它不能捕获其他类型的输出,例如log4j警告等。
如何以编程方式将控制台输出重定向到不同的文件?
发布于 2012-04-17 16:28:00
转到run as并选择Run Configurations
-> Common
,在标准输入和输出中还可以选择文件。
发布于 2015-05-03 20:15:09
您可以在输出文件名中使用“变量”,例如:
/tmp/FetchBlock-${current_date}.txt
current_date:
返回格式为yyyyMMdd_HHmm的当前系统时间。可选参数可用于提供替代格式。参数必须是java.util.SimpleDateFormat的有效模式。
或者,您也可以使用system_property或env_var来指定一些动态内容(其中任何一个都需要指定为参数)
发布于 2014-12-18 16:00:16
您可以通过执行以下操作以编程方式设置System.out的输出:
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));
编辑:
由于此解决方案基于PrintStream
,因此我们可以启用autoFlush,但根据docs
autoFlush -布尔值;如果为true,则无论何时写入字节数组、调用某个println方法或写入换行符或字节('\n'),都将刷新输出缓冲区
因此,如果没有编写新行,请记住手动执行System.out.flush()
。
(感谢Robert Tupelo-Schneck)
https://stackoverflow.com/questions/5714053
复制相似问题