in reply to log4perl question
setup your logging as normal, before the first log message hijack the modules time_to_rotate function. log the first message, replace the original function.
this has (at least) one bug: the first time it will create logfile then rotate it to logfile.1 then create a new logfile. otherwise it should work (assuming i put back the original function correctly).
my $l = get_logger( 'base' ); *old = \&Log::Dispatch::FileRotate::time_to_rotate; *Log::Dispatch::FileRotate::time_to_rotate = sub { return wantarray ? +( 1, 1 ) : 1 }; $l->info('starting up and forcing rotation'); *Log::Dispatch::FileRotate::time_to_rotate = \&old; $l->info('more logging as usual');
|
|---|