in reply to Re: Module Renaming Suggestions
in thread Module Renaming Suggestions

There are lots of logging modules. They are either very complex and super featureful or are stripped down and address one problem. I originally wrote my module because I wanted something simple and flexible.

To get that flexibility I decided to use callbacks to handle formatting. That way if you want simple content wrapping you can have it, or if you want to process complex data structures, you can do that too.

I've used this module in several projects and it works nicely in both modes. Noting I've looked at seems to be quite as flexible. With other solutions I always wind up having to put a bunch of formatting code all over my programs.

$loglevel = 2; # should be set by getopt sub loglevel { my $data = shift; return $data->[1] <= $loglevel ? Dumper $data->[0] : ""; } # ... Insert some code here. $log->format(\&loglevel); $log->entry( [$some_ref, 1] ); $log->entry("We always log this!", 'standard' ); # Sticks a time and +date stamp in front of text.


TGI says moo

Replies are listed 'Best First'.
Re^3: Module Renaming Suggestions
by brian_d_foy (Abbot) on Jul 01, 2005 at 23:58 UTC

    If that is the major feature of your module (and the main difference from other logging modules), how about a name like Log::Formatted?

    In fact, I think your module is more complicated than it needs to be since you definitely want to control formatting, so *::Simple just isn't right. In the odd case that *::Simple would be appropriate, it wouldn't be for a module that requires extra work of setting up callbacks or denoting formats. A truly simple module would do that for you.

    --
    brian d foy <brian@stonehenge.com>

      I am becoming convinced on the simple issue.

      Callbacks aren't required. The simplest usage would be:

      my $log = Log::Simple->('path/to/file.log'); $log->open; foreach my $stuff (@ARGV) { $log->entry("Stuff happened: $stuff"); } $log->exit("Bad stuff happened", 999);

      The standard formatter just sticks a timestamp on each line and prints it. If you don't define a default formatter with format, open, or new, the standard formatter will be used. If you do supply a default formatter, you can access the standard format for an entry by using 'standard' as the format argument.

      I have been thinking about some variant of 'Format' for the name. Because it gets at what this module does that is different from the many other logging modules. The other option I've been considering is something like WithCallbacks. But I haven't on anything that works well.


      TGI says moo