2

print_error.sh次のようなシェル スクリプトがあるとします。

#!/usr/bin/bash

echo "ERROR: Bla bla, yada yada."
exit 1

今、私は Perl スクリプトを使用しており、このシェル スクリプトを次のように呼び出しています。

system("print_error.sh")

のコンソール出力を読み込んでLog4perlロガーprint_error.shに書き込もうとしています。

どうすればこれを達成できますか?

4

2 に答える 2

0

これが私が見つけた解決策です:

#!/usr/bin/perl

use Log::Log4perl;

my $logfile = "log.txt";
$ENV{"LOGFILE"} = $logfile;

Log::Log4perl->init("log4perl.properties");
$logger = Log::Log4perl->get_logger();

$logger->info("pos 1");
system("./print_error.sh 0 2>&1 >> $logfile") == 0
        or die "perl error";
$logger->info("pos 2");

exit 0

こちらもご覧ください

于 2011-05-17T13:48:08.807 に答える