如何将groovy脚本的所有输出重定向到另一个流,而不更改脚本?
,仅将如何将groovy脚本的所有输出重定向到另一个流,而不更改脚本?,groovy,Groovy,,仅将输出命令重定向到输出流。我想将脚本的所有输出重定向到一个流,而不仅仅是使用out创建的输出的子集。您可以将System.out绑定到另一个流,例如(如果您从纯Java调用它): 或更为常规: System.out = new File('console.out').newPrintWriter() //call your script there 所以基本上,如果我在同一个进程中运行脚本,我不能只重定向脚本的输出,而是必须全局地执行它?是的。如果它使用全局输出-您只有一种方法:重新定义此
输出
命令重定向到输出流。我想将脚本的所有输出重定向到一个流,而不仅仅是使用out创建的输出的子集。您可以将System.out
绑定到另一个流,例如(如果您从纯Java调用它):
或更为常规:
System.out = new File('console.out').newPrintWriter()
//call your script there
所以基本上,如果我在同一个进程中运行脚本,我不能只重定向脚本的输出,而是必须全局地执行它?是的。如果它使用全局输出-您只有一种方法:重新定义此全局输出。顺便说一句,您可能可以自己实现printwriter,它将检查调用线程,只捕获所需线程的数据,并将所有其他输出发送到感兴趣的原始输出。包装在Java7 closeable中,并在最后发布适当的版本,这实际上可以工作。
System.out = new File('console.out').newPrintWriter()
//call your script there