Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

RFC: Log::Log4perl::CommandLine

by ctilmes (Vicar)
on Aug 06, 2008 at 18:36 UTC ( #702697=perlmeditation: print w/replies, xml ) Need Help??

I attended a great talk about Log4perl at OSCON: Log4perl: the Only Logging System You'll Ever Need by Mike Schilli.

I asked a question about something to enable simple command line options for configuring Log4perl. Mike seemed receptive to the idea, but as so often, replied to a good idea with "Patches Welcome".

Log4perl is a great package, with a great deal of flexibility. I strongly encourage everyone to use it! There are two users I see: One is the programmer developing code, the other is the "user" of the code, which could be someone running the program, or another developer using a module. As Mike discussed in his talk, Log4perl allows very flexible remote controls to the user to affect the developers instrumented logging code. As most things in perl, there is a very flexible, but more complicated (well not so much, but stay with me here..) way to add logging, and there is also an "easy" flag to make a very low barrier to someone who doesn't want to explore the intricacies to make basic use of the module. This is great for someone who wants to add logging to their code.

Then we get to the user. Log4perl provides an extremely flexible log configuration system where you can make endless tweaks, but the configuration file format is pretty complicated.

Enter Log::Log4perl::CommandLine, the "easy" option for the user. This doesn't preclude using the fancy configuration file if you want to do very fancy things, it just provides some training wheels if you want just the basics.

The basics for controlling logging, as I see them are:

  • Control basic verbosity (-v / --verbose, -d / --debug, etc.)
  • Independently control module verbosity (--debug MyModule)
  • Turn a logfile on (--logfile mylog.out)
Anyway, take a look at it, and the Cookbook with some examples of usage and let me know what you think.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://702697]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (8)
As of 2018-06-25 18:08 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (128 votes). Check out past polls.