我在perl中记录一些消息时遇到问题。我创建了简单的日志包。我仍然只是第一行到文件。似乎附加文件不起作用。有任何想法吗?
即使我多次运行该脚本,输出日志文件也没有任何变化。总是写着“东西”。我需要将“somethingElse”附加到输出文件中。我在日志中有些错误吗?
package Logger;
sub new {
my $package = shift;
my $self = {};
bless $self , $package;
$self->initialize(@_);
return $self;
}
sub initialize {
my $self = shift;
$self->{logfile} = shift;
return;
}
sub logger {
my $self = shift;
my $message = shift;
my (undef,$script, $line) = caller;
open(LOG, ">>$self->{logfile}");
print LOG substr(scalar localtime(),4,15), " ", $message, "\n";
close(LOG);
return;
}
my $log = Logger->new('/usr/local/logs/test.log');
$log->logger("something");
$log->logger("somethingElse");
谢谢
答案 0 :(得分:0)
这段代码对我来说很好,所以我不能确定这是正确的解决方案,但通常当某些代码没有打印出你想要的内容时,这是因为自动刷新问题。您可以尝试添加此内容:
$| = 1
或者如果您愿意:
use English qw( -no_match_vars );
$OUTPUT_AUTOFLUSH = 1;
到程序的开头,看看是否有帮助。