# $Id: Logger.pm 6839 2000-05-05 21:32:07Z rousskov $
# This program is copyrighted free software; you can redistribute it and/or
# modify it under the same terms as Web Polygraph itself.
package Logger;
use strict;
#
# very simple logging interface
#
require Exporter;
@Logger::ISA = qw( Exporter );
@Logger::EXPORT = qw( &Log &Logf &LogPrefix &ButifyBuf);
sub Log {
#print(&LogPrefix(), @_, "\n");
my $buf = join('', &LogPrefix(), @_, "\n");
syswrite(STDOUT, $buf, length($buf));
return undef;
}
sub Logf {
my $fmt = shift;
return Log(sprintf($fmt, @_));
}
sub ButifyBuf {
my $buf = shift;
die($buf) if $buf !~ /\n/;
my $pfx = &LogPrefix();
$buf = join("\n",
map { $pfx . "\t" . $_ }
split(/\n/m, $buf));
return $buf;
}
sub LogPrefix {
return &timeStr() . '| ';
}
sub timeStr {
my $tm = shift || time();
my ($sec,$min,$hour,$mday,$mon,$year) = localtime($tm);
return sprintf('%02d/%02d %02d:%02d.%02d',
1+$mon, $mday, $hour, $min, $sec);
}
syntax highlighted by Code2HTML, v. 0.9.1