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:

Anyway, take a look at it, and the Cookbook with some examples of usage and let me know what you think.