附加到perl文件的问题

时间:2013-05-15 11:42:00

标签: perl logging append

我在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");

谢谢

1 个答案:

答案 0 :(得分:0)

这段代码对我来说很好,所以我不能确定这是正确的解决方案,但通常当某些代码没有打印出你想要的内容时,这是因为自动刷新问题。您可以尝试添加此内容:

$| = 1

或者如果您愿意:

use English qw( -no_match_vars );
$OUTPUT_AUTOFLUSH = 1;

到程序的开头,看看是否有帮助。