On Mon, 4 Aug 2008, Curt Tilmes wrote:

> I attended your talk at OSCON about Log4perl (which I enjoyed
> immensely, thank you!),

Hi Curt,

thanks, glad you liked it ;).

> and asked a question about command line options rather than config
> files.  I've thought about it a bit since then, and put together the
> attached module.

This is fantastic, I've always wanted something like that.

I have one suggestion: Since -d or -v are used by some scripts for
different purposes, how about letting the script determine which options
are covered? In this way,

     use Log::Log4perl::CommandLine qw(:all);

would activate all available command line options, while

     use  Log::Log4perl::CommandLine qw(v q d);

would activate -v, -q, and -d.

And, sure, feel free to use Log::Log4perl::CommandLine as the name, that
makes perfect sense.

Is it OK if I forward your post to the log4perl devel list?

Thanks for your Log4perl extension!

-- Mike

Mike Schilli
[EMAIL PROTECTED]

> replace the configuration file interface (which is infinitely more
> configurable), but rather to make an easy way to 1) make use of
> Log4perl even if you don't want to think about the config files (or
> teach end users how to write them), and 2) provide an easy command
> line way to override a couple parts without continually editing/saving
> a new config file.
> 
> What do you think about the proposed module name:
>    Log::Log4perl::CommandLine
> 
> As implemented, I just call Getopt::Long to do all the command line
> option parsing,
> but I know you don't want to add dependencies on external modules for your 
> core
> Log4perl module.  This could be released independently if that was a concern.
> 
> To illustrate, I took the simple "drink soda" script from one of your
> tutorial articles
> and changed it like this:
> =================================
> use Log::Log4perl qw(:easy);
> use Log::Log4perl::CommandLine;
> 
> drink();
> drink("Soda");
> 
> sub drink {
>    my($what) = @_;
>
>    my $logger = get_logger();
>
>    if(defined $what) {
>        $logger->info("Drinking ", $what);
>    } else {
>        $logger->error("No drink defined");
>    }
> }
> ==================================
> 
> Now it is command line enabled, and you can do things like this:
> 
> % perl log.pl
> 2008/08/04 15:55:53 No drink defined
> 
> % perl log.pl -v    (or --verbose)
> 2008/08/04 15:55:56 No drink defined
> 2008/08/04 15:55:56 Drinking Soda
> 
> % perl log.pl -q   (or --quiet)
> 
> % perl log.pl --debug --logfile log.txt
> 2008/08/04 16:08:16 No drink defined
> 2008/08/04 16:08:16 Drinking Soda
> 
> % cat log.txt
> 2008/08/04 16:08:16 No drink defined
> 2008/08/04 16:08:16 Drinking Soda
> 
> % perl log.pl --trace My::Module
> [...]
> 
> What do you think?
> 
> Curt
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to