Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

log4perl question

by smackdab (Pilgrim)
on Oct 18, 2003 at 07:30 UTC ( #300247=perlquestion: print w/replies, xml ) Need Help??
smackdab has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,

I just started to learn about and switch over to this cool logging system.

I have it logging to a text file and I got ::FileRotate to work - COOL!

BUT, if you start/stop the program a few times, the only easy way to see the most recent run is to go to the end of the file and then backtrack. And I output a lot of debug data...

The mess that I had written would save a backup of the last program run in a .bak file and then start logging in the original file...

Is there anyway to combine these ideas? Or should I just get used to it ;-)

I REALLY like to always open output.log and start reading from the top...seems like the most obvious way...


Replies are listed 'Best First'.
Re: log4perl question
by zengargoyle (Deacon) on Oct 18, 2003 at 08:08 UTC

    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');

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://300247]
Approved by sauoq
[Discipulus]: finally a relaxing workday! good morning mnks!
[Lady_Aleena]: I hope you have a wonderful day Discipulus. 8)
[Corion]: A good morning to you too ;)
[choroba]: Good morning, Monks!
[Corion]: And a good daypart to you as well, Lady_Aleena !
[robby_dobby]: Hey monkeys, do you ever get the realization that you're all waking up to chaos? I suppose not :P
[Lady_Aleena]: Good morning Corion, I hope you have a wonderful day as well. 8)
[Corion]: Yesterday I encountered an interesting data structure problem. I have a remote program that emits events, and my client listens for these events with one-shot callbacks, that is, I register the callback and if the event gets generated that callback ...
[Lady_Aleena]: robby_dobby, every day. Chaos is my life with few controls.
[Corion]: ... gets called once. The data structure for that is just a hash of arrays, mapping the event type to a queue of registered one-shots, and the first one-shot from the queue gets removed and called.

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2017-05-29 07:50 GMT
Find Nodes?
    Voting Booth?