Log::Report::Dispatcher::Callback(3) User Contributed Perl Documentation Log::Report::Dispatcher::Callback(3)

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

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

sub cb($$$)
{   my ($disp, $options, $reason, $message) = @_;
    ...
}
dispatcher Log::Report::Dispatcher::Callback => 'cb',
      callback => \&cb;
dispatcher CALLBACK => 'cb',   # same
      callback => \&cb;

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;

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

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'
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.

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

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

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

Cast by new()

This module is part of Log-Report version 1.43, built on December 05, 2025. Website: http://perl.overmeer.net/CPAN/

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.

2025-12-12 perl v5.42.0