mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-29 23:39:24 +01:00
Logger: rename log file to log-<start-up timestamp> at normal termination
This commit is contained in:
parent
4fbdcd948f
commit
54a661955b
@ -19,9 +19,9 @@ sub new {
|
|||||||
|
|
||||||
my ($class, %conf) = @_;
|
my ($class, %conf) = @_;
|
||||||
|
|
||||||
my $logfile = delete $conf{filename};
|
my $pbot = $conf{pbot} // Carp::croak "Missing pbot reference to " . __FILE__;
|
||||||
|
my $logfile = $conf{filename} // Carp::croak "Missing logfile parameter in " . __FILE__;
|
||||||
|
|
||||||
if (defined $logfile) {
|
|
||||||
my $path = dirname $logfile;
|
my $path = dirname $logfile;
|
||||||
if (not -d $path) {
|
if (not -d $path) {
|
||||||
print "Creating new logfile path: $path\n";
|
print "Creating new logfile path: $path\n";
|
||||||
@ -30,13 +30,15 @@ sub new {
|
|||||||
|
|
||||||
open LOGFILE, ">>$logfile" or Carp::croak "Couldn't open logfile $logfile: $!\n";
|
open LOGFILE, ">>$logfile" or Carp::croak "Couldn't open logfile $logfile: $!\n";
|
||||||
LOGFILE->autoflush(1);
|
LOGFILE->autoflush(1);
|
||||||
}
|
|
||||||
|
|
||||||
my $self = {
|
my $self = bless {
|
||||||
logfile => $logfile,
|
logfile => $logfile,
|
||||||
};
|
pbot => $pbot,
|
||||||
|
start => time,
|
||||||
|
}, $class;
|
||||||
|
|
||||||
|
$self->{pbot}->{atexit}->register(sub { $self->rotate_log; return; });
|
||||||
|
|
||||||
bless $self, $class;
|
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,4 +55,12 @@ sub log {
|
|||||||
print "$time :: $text";
|
print "$time :: $text";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub rotate_log {
|
||||||
|
my ($self) = @_;
|
||||||
|
my $time = localtime $self->{start};
|
||||||
|
$time =~ s/\s+/_/g;
|
||||||
|
close LOGFILE;
|
||||||
|
rename $self->{logfile}, $self->{logfile} . '-' . $time;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
@ -54,8 +54,9 @@ sub new {
|
|||||||
|
|
||||||
my ($class, %conf) = @_;
|
my ($class, %conf) = @_;
|
||||||
my $self = bless {}, $class;
|
my $self = bless {}, $class;
|
||||||
$self->initialize(%conf);
|
$self->{atexit} = PBot::Registerable->new(%conf);
|
||||||
$self->register_signal_handlers;
|
$self->register_signal_handlers;
|
||||||
|
$self->initialize(%conf);
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +81,7 @@ sub initialize {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# logger created first to allow other modules to log things
|
# logger created first to allow other modules to log things
|
||||||
$self->{logger} = PBot::Logger->new(filename => "$data_dir/log/log", %conf);
|
$self->{logger} = PBot::Logger->new(pbot => $self, filename => "$data_dir/log/log", %conf);
|
||||||
|
|
||||||
$self->{version} = PBot::VERSION->new(pbot => $self, %conf);
|
$self->{version} = PBot::VERSION->new(pbot => $self, %conf);
|
||||||
$self->{logger}->log($self->{version}->version . "\n");
|
$self->{logger}->log($self->{version}->version . "\n");
|
||||||
@ -88,12 +89,9 @@ sub initialize {
|
|||||||
|
|
||||||
return if $conf{logger_only};
|
return if $conf{logger_only};
|
||||||
|
|
||||||
$self->{atexit} = PBot::Registerable->new(%conf);
|
|
||||||
$self->{timer} = PBot::Timer->new(timeout => 10, %conf);
|
$self->{timer} = PBot::Timer->new(timeout => 10, %conf);
|
||||||
|
|
||||||
$self->{commands} = PBot::Commands->new(pbot => $self, %conf);
|
$self->{commands} = PBot::Commands->new(pbot => $self, %conf);
|
||||||
$self->{func_cmd} = PBot::FuncCommand->new(pbot => $self, %conf);
|
$self->{func_cmd} = PBot::FuncCommand->new(pbot => $self, %conf);
|
||||||
|
|
||||||
$self->{refresher} = PBot::Refresher->new(pbot => $self);
|
$self->{refresher} = PBot::Refresher->new(pbot => $self);
|
||||||
|
|
||||||
# make sure the environment is sane
|
# make sure the environment is sane
|
||||||
|
Loading…
Reference in New Issue
Block a user