我们如何将eclipse控制台输出重定向到文件?我可以:
Run Configuration- > Commons- > Select a file.System.setOut(PrintStream)和System.setErr(PrintStream).1)的问题是我需要将控制台输出记录到不同的文件而不是一个文件.
2)的问题是它只存储由System.out.println()抛出的异常生成的控制台输出或堆栈跟踪.它不捕获其他类型的输出,例如log4j警告等.
我们如何以编程方式将控制台输出重定向到不同的文件?
She*_*ari 175
转到运行方式并选择Run Configurations- > Common,在标准输入和输出中,您也可以选择文件.
小智 11
您可以在输出文件名中使用"变量",例如:
/tmp/FetchBlock-${current_date}.txt
Run Code Online (Sandbox Code Playgroud)
当前的日期:
返回格式为yyyyMMdd_HHmm的当前系统时间.可选参数可用于提供替代格式.参数必须是java.util.SimpleDateFormat的有效模式.
或者您也可以使用system_property或env_var来指定动态(需要将其指定为参数)
您可以通过以下方式以编程方式设置System.out的输出:
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));
Run Code Online (Sandbox Code Playgroud)
编辑:
由于此解决方案基于a PrintStream,我们可以启用autoFlush,但根据文档:
autoFlush - 布尔值; 如果为true,则只要写入字节数组,调用其中一个println方法,或者写入换行符或字节('\n'),就会刷新输出缓冲区
因此,如果未写入新行,请记住System.out.flush()手动.
(谢谢Robert Tupelo-Schneck)
| 归档时间: |
|
| 查看次数: |
148291 次 |
| 最近记录: |