在Perl中过滤标准输出
我这样做是为了记录脚本中发送到STDOUT的每条消息在Perl中过滤标准输出,perl,shell,stdout,Perl,Shell,Stdout,我这样做是为了记录脚本中发送到STDOUT的每条消息 open(STDOUT," | tee $log") or die "Unable to open $log"; 是否可以轻松筛选发送到日志的所有消息?说替换一个字符?不是你的方式,因为你所做的是将所有内容发送到tee,然后tee打印它所记录的内容 您也许可以创建一个内置了sed的管道。但另一种方法可能是编写自己的“log_line”子文件,该子文件将显式打印到日志文件和标准输出 sub print2 { print {$outpu
open(STDOUT," | tee $log") or die "Unable to open $log";
是否可以轻松筛选发送到日志的所有消息?说替换一个字符?不是你的方式,因为你所做的是将所有内容发送到
tee
,然后tee
打印它所记录的内容
您也许可以创建一个内置了sed
的管道。但另一种方法可能是编写自己的“log_line”子文件,该子文件将显式打印到日志文件和标准输出
sub print2 {
print {$output_fh} @_;
print @_;
}
您可以构建自己的转换
您还可以使用几个模块,例如IO::Tee
和log4perl
。如果您想让不同的东西进入STDOUT
和您的日志,那么可能值得一看,做一个功能更全面的日志记录 open(STDOUT,“| perl-pe的/../…/”| tee$log”)