X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXLog.pm;h=dde723027f5b237afd735c4452eeafd1b7a42a02;hb=9a55af9586711ecdea8dc9b0da38509119fa8090;hp=5b5914b4e6b2472d5130d44b39c580bc67ff938e;hpb=50bafbfa099ff0847beeb30e41bc62a361ef0536;p=spider.git diff --git a/perl/DXLog.pm b/perl/DXLog.pm index 5b5914b4..dde72302 100644 --- a/perl/DXLog.pm +++ b/perl/DXLog.pm @@ -37,7 +37,6 @@ use Julian; use Carp; use strict; - use vars qw($log); $log = new('log', 'dat', 'm'); @@ -51,7 +50,7 @@ sub new my $ref = {}; $ref->{prefix} = "$main::data/$prefix"; $ref->{suffix} = $suffix if $suffix; - $ref->{sort} = $sort; + $ref->{'sort'} = $sort; # make sure the directory exists mkdir($ref->{prefix}, 0777) if ! -e $ref->{prefix}; @@ -67,15 +66,15 @@ sub open if (defined $mode) { my $dir = "$self->{prefix}/$year"; mkdir($dir, 0777) if ! -e $dir; - $self->{mode} = $mode; - } else { - delete $self->{mode}; } - $self->{fn} = sprintf "$self->{prefix}/$year/%03d", $thing; + $self->{fn} = sprintf "$self->{prefix}/$year/%02d", $thing if $self->{'sort'} eq 'm'; + $self->{fn} = sprintf "$self->{prefix}/$year/%03d", $thing if $self->{'sort'} eq 'd'; $self->{fn} .= ".$self->{suffix}" if $self->{suffix}; $mode = 'r' if !$mode; + $self->{mode} = $mode; + my $fh = new FileHandle $self->{fn}, $mode; return undef if !$fh; $fh->autoflush(1) if $mode ne 'r'; # make it autoflushing if writable @@ -93,9 +92,9 @@ sub open sub openprev { my $self = shift; - if ($self->{sort} eq 'm') { + if ($self->{'sort'} eq 'm') { ($self->{year}, $self->{thing}) = Julian::subm($self->{year}, $self->{thing}, 1); - } elsif ($self->{sort} eq 'd') { + } elsif ($self->{'sort'} eq 'd') { ($self->{year}, $self->{thing}) = Julian::sub($self->{year}, $self->{thing}, 1); } return $self->open($self->{year}, $self->{thing}, @_); @@ -105,9 +104,9 @@ sub openprev sub opennext { my $self = shift; - if ($self->{sort} eq 'm') { + if ($self->{'sort'} eq 'm') { ($self->{year}, $self->{thing}) = Julian::addm($self->{year}, $self->{thing}, 1); - } elsif ($self->{sort} eq 'd') { + } elsif ($self->{'sort'} eq 'd') { ($self->{year}, $self->{thing}) = Julian::add($self->{year}, $self->{thing}, 1); } return $self->open($self->{year}, $self->{thing}, @_); @@ -118,9 +117,9 @@ sub unixtoj { my $self = shift; - if ($self->{sort} eq 'm') { + if ($self->{'sort'} eq 'm') { return Julian::unixtojm(shift); - } elsif ($self->{sort} eq 'd') { + } elsif ($self->{'sort'} eq 'd') { return Julian::unixtoj(shift); } confess "shouldn't get here"; @@ -144,7 +143,8 @@ sub write sub writenow { my ($self, $line) = @_; - my @date = $self->unixtoj(time); + my $t = time; + my @date = $self->unixtoj($t); return $self->write(@date, $line); } @@ -162,7 +162,6 @@ sub close my $self = shift; undef $self->{fh}; # close the filehandle delete $self->{fh}; - delete $self->{mode}; } # log something in the system log @@ -171,10 +170,11 @@ sub close # The user is responsible for making sense of this! sub Log { - $log->writeunix($main::systime, join('^', $main::systime, @_) ); + my $t = time; + $log->writeunix($t, join('^', $t, @_) ); } -sub DESTROY # catch undefs and do what is required further do the tree +sub DESTROY # catch undefs and do what is required further down the tree { my $self = shift; DXDebug::dbg("dxlog", "closing $self->{fn}\n");