加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:06:53 所属栏目:Windows 来源:网络整理
导读:我已经搜索了互联网,并发现了一些很好的解决方案,将STDOUT发到两个不同的地方.喜欢日志文件,也可以同时到屏幕.这里有一个例子: use IO::Tee;my $log_filename = "log.txt";my $log_filehandle;open( $log_filehandle,'',$log_filename ) or die("Can't open
我已经搜索了互联网,并发现了一些很好的解决方案,将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读