我已经搜索了互联网,并发现了一些很好的解决方案,将STDOUT发到两个不同的地方.喜欢日志文件,也可以同时到屏幕.这里有一个例子:
use IO::Tee; my $log_filename = "log.txt"; my $log_filehandle; open( $log_filehandle,'>>',$log_filename ) or die("Can't open $log_filename for append: $!"); my $tee = IO::Tee->new( $log_filehandle,\*STDOUT ); select $tee;
但这个解决方案让STDERR只能进入屏幕,我想让STDERR去屏幕,同时也是STDOUT被记录的同一个日志文件.甚至有可能吗
我的任务是让我的构建过程记录下来,但是我也想像往常一样在我的IDE屏幕上看到它.并记录错误消息与记录快乐消息一样重要.并将错误记录到单独的日志文件不是一个很好的解决方案.
您可以通过执行以下操作将stderr重定向到windows shell级别的stdout:
原文链接:https://www.f2er.com/windows/370995.htmlperl stuff.pl 2>&1
请参阅support article here的官方词.
那么你可以使用this stackoverflow answer从外壳做一个三通.
perl stuff.pl 2>&1 | tee stuff.txt