可以将STDOUT和STDERR发送到日志文件以及Win32 Perl中的屏幕吗?

我已经搜索了互联网,并发现了一些很好的解决方案,将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:

perl stuff.pl 2>&1

请参阅support article here的官方词.

那么你可以使用this stackoverflow answer从外壳做一个三通.

perl stuff.pl 2>&1 | tee stuff.txt
相关文章
相关标签/搜索