@mob 的回答很可能解决了您的直接问题。但是,我建议您考虑在模式下使用Log::Log4perleasy
。它将帮助您避免多次重新发明轮子,并且您将免费获得易于配置的日志记录级别:
#!/usr/bin/env perl
use strict; use warnings;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init($WARN);
while (<>) {
INFO "$. : $_";
if ( /easy/ and ($. > 1)) {
ERROR "$ARGV [$.] - Make easy things harder!";
}
if (eof) {
ALWAYS "Done with $ARGV";
}
}
C:\temp> log.pl log.pl
2012/07/07 20:41:57 log.pl [5] - 让简单的事情变得更难!
2012/07/07 20:41:57 log.pl [6] - 让简单的事情变得更难!
2012/07/07 20:41:57 log.pl [10] - 让简单的事情变得更难!
2012/07/07 20:41:57 log.pl [11] - 让简单的事情变得更难!
2012/07/07 20:41:57 完成 log.pl
另请注意:
虽然这已被证明可以很好地让人们慢慢熟悉 Log::Logperl,有效地避免用大量不同的旋钮来摆弄他们(类别、附加器、级别、布局),但 Log 的总体使命是: :Log4perl 就是让人们从一开始就使用类别来习惯这个概念。所以,让我们把它隐藏在手册页中(恭喜你读到这里 :)。