我已经搜索了互联网,并发现了一些很好的解决方案,将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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。