Log::Report::Dispatcher::Callback(3)

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

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

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

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

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

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;

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

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

$class->new($type, $name, %options)
    Inherited, see "Constructors" in Log::Report::Dispatcher

     -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|\@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.

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

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

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

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

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

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

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

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

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

DIAGNOSTICS

Error: dispatcher $name needs a 'callback'
    Cast by new()

SEE ALSO
This module is part of Log-Report version 1.44, built on December 22, 2025. Website: http://perl.overmeer.net/CPAN/

LICENSE
For contributors see file ChangeLog.

This software is copyright (c) 2007-2025 by Mark Overmeer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.