logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Log::Report::Dispatcher::Callback - call a code-ref for each log-line

Description

       This basic file logger accepts a callback, which is called for each message which is to be logged. When
       you need complex things, you may best make your own extension to Log::Report::Dispatcher, but for simple
       things this will do.

       Extends "DESCRIPTION" in Log::Report::Dispatcher.

       .Example

         sub send_mail($$$)
         {   my ($disp, $options, $reason, $message) = @_;
             my $msg = Mail::Send->new(Subject => $reason
               , To => 'admin@localhost');
             my $fh  = $msg->open('sendmail');
             print $fh $disp->translate($reason, $message);
             close $fh;
         }

         dispatcher CALLBACK => 'mail', callback => \&send_mail;

Details

       Extends "DETAILS" in Log::Report::Dispatcher.

Inheritance

        Log::Report::Dispatcher::Callback
          is a Log::Report::Dispatcher

License

       Copyrights 2007-2025 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.

       This program is free software; you can redistribute it and/or modify it under  the  same  terms  as  Perl
       itself.  See http://dev.perl.org/licenses/

perl v5.40.1                                       2025-04-20             Log::Report::Dispatcher::Callback(3pm)

Methods

       Extends "METHODS" in Log::Report::Dispatcher.

   Constructors
       Extends "Constructors" in Log::Report::Dispatcher.

       $obj->close()
           Inherited, see "Constructors" in Log::Report::Dispatcher

       Log::Report::Dispatcher::Callback->new($type, $name, %options)
            -Option       --Defined in             --Default
             accept         Log::Report::Dispatcher  depend on mode
             callback                                <required>
             charset        Log::Report::Dispatcher  <undef>
             format_reason  Log::Report::Dispatcher  'LOWERCASE'
             locale         Log::Report::Dispatcher  <system locale>
             mode           Log::Report::Dispatcher  'NORMAL'

           accept => REASONS
           callback => CODE
             Your "callback" is called with five parameters: this dispatcher object, the options, a reason and a
             message.   The  "options"  are the first parameter of Log::Report::report() (read over there).  The
             "reason" is a capitized string like "ERROR".  Then,  the  "message"  (is  a  Log::Report::Message).
             Finally the text-domain of the message.

           charset => CHARSET
           format_reason => 'UPPERCASE'|'LOWERCASE'|'UCFIRST'|'IGNORE'|CODE
           locale => LOCALE
           mode => 'NORMAL'|'VERBOSE'|'ASSERT'|'DEBUG'|0..3

   Accessors
       Extends "Accessors" in Log::Report::Dispatcher.

       $obj->callback()
           Returns the code reference which will handle each logged message.

       $obj->isDisabled()
           Inherited, see "Accessors" in Log::Report::Dispatcher

       $obj->mode()
           Inherited, see "Accessors" in Log::Report::Dispatcher

       $obj->name()
           Inherited, see "Accessors" in Log::Report::Dispatcher

       $obj->needs( [$reason] )
           Inherited, see "Accessors" in Log::Report::Dispatcher

       $obj->type()
           Inherited, see "Accessors" in Log::Report::Dispatcher

   Logging
       Extends "Logging" in Log::Report::Dispatcher.

       $obj->addSkipStack(@CODE)
       Log::Report::Dispatcher::Callback->addSkipStack(@CODE)
           Inherited, see "Logging" in Log::Report::Dispatcher

       $obj->collectLocation()
       Log::Report::Dispatcher::Callback->collectLocation()
           Inherited, see "Logging" in Log::Report::Dispatcher

       $obj->collectStack( [$maxdepth] )
       Log::Report::Dispatcher::Callback->collectStack( [$maxdepth] )
           Inherited, see "Logging" in Log::Report::Dispatcher

       $obj->log(HASH-$of-%options, $reason, $message, $domain)
           Inherited, see "Logging" in Log::Report::Dispatcher

       $obj->skipStack()
           Inherited, see "Logging" in Log::Report::Dispatcher

       $obj->stackTraceLine(%options)
       Log::Report::Dispatcher::Callback->stackTraceLine(%options)
           Inherited, see "Logging" in Log::Report::Dispatcher

       $obj->translate(HASH-$of-%options, $reason, $message)
           Inherited, see "Logging" in Log::Report::Dispatcher

Name

       Log::Report::Dispatcher::Callback - call a code-ref for each log-line

See Also

       This  module  is  part  of  Log-Report  distribution  version  1.40,  built  on  April 18, 2025. Website:
       http://perl.overmeer.net/CPAN/

Synopsis

        sub cb($$$)
        {   my ($disp, $options, $reason, $message) = @_;
            ...
        }

        dispatcher Log::Report::Dispatcher::Callback => 'cb'
           , callback => \&cb;

        dispatcher CALLBACK => 'cb'   # same
           , callback => \&cb;

See Also