The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

 Logger - Debugging tool which outputs logging messages in a nifty format.

SYNOPSIS

  • Print messages to both STDERR and a file:

    use Pat::Logger;
    $debug_file = '/tmp/foo.log';
    eval { $logger = new Pat::Logger ( $debug_file ) };
    die $@ if $@;

    $logger->debug_message ( 'Logger will tell you the package, subroutine, line number and the time your debug message originated from' );
    $logger->separate;
    $logger->debug_message ( 'This line is separated from the previous one' );
    $logger->debug_message ( "An error occured", 'ERROR' ); # This message will blink in Red.
    $logger->debug_message ( "This line is much longer to fit in a single row. Logger will split it nicely, without chopping off words and display it in multiple rows" );
     

DESCRIPTION

    The Logger module is a nifty tool to organaize your debug messages, and thus your program flow.

    While writing your code you need a tool to output your debug messages.
    You want to see where the message originated from ( which module, which subroutine and line number and at what time ),
    so you can proceed directly to solving the matter, rather than search for it's location.
    You want to destinguish between an error message, and yet another flow control message.
    Not only you want to see the messages on screen, you want to have them in a local file as well.
    Logger does just that.

    There are two working modes for Logger:

    (1) Debugging to STDERR+file.
    (2) Debugging to STDERR only.
  • new($)

        This constructor expects a file name to output all message to.
        Upon success, a blessed hash reference will be returned.
        Upon failure the method dies, and $@ will hold the error message.
        
        If a file name is not passed, Logger will output all messages to STDERR only.
  • debug_message($)

        This method takes two argument - the debug message you wish to log, and the type of the message.
        Currently supported type is 'ERROR'. When the second argument is 'ERROR', the debug message willl appear
        in blinking Red color ( in case your Terminal supports it ).
        
        Upon success - the method returns 1.
        Upon failre  - the method returns 0.
        
        The Logger object does all the work behind the scenes:
        (1) Grab the time, package, subroutine name and line number which the message originated from.
        (2) Create a nice format with the parameters aforementioned.
        (3) Output it according to object type.
  • separate()

        You may wish to create visual separation between messages.
        When you invoke separate(), a line consistant of '-' will be outputed.
    
        This length is automatically calculated by Logger.
        

WIDTH CONTROL

    The Logger module uses pack() to indent the output.
    You can control the  width of each field by altering the code:
                         
    my $time_pack = 'A18'; This mean the 'TIME' column is 18 byte long.
    my $sub_pack  = 'A39';
    my $line_pack = 'A6';
    my $msg_pack  = 'A97';
                         
    Upon modification of this fields, Logger automatically calculates the new scheme,
    and adjusts all relevant fields accordingly, to your convenience.

 

BUGS

    None at the moment. 
    If you have any question or comment - pengas@cpan.org

COPYRIGHT

    Copyright 2001-2002, Pengas Nir

    This library is free software - you can redistribute 
    it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 464:

You forgot a '=back' before '=head1'