---
name: "Log::Report::Dispatcher::Callback"
section: "3pm"
platform: "linux"
package: "perl-log-report"
version: "1.46-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Log::Report::Dispatcher::Callback"
---

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

call a code-ref for each log-line

## 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

    ### Attributes

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

- $obj-\>**callback**()

  Returns the code reference which will handle each logged message.

- $obj-\>**isDisabled**()

  Inherited, see "Attributes" in Log::Report::Dispatcher

- $obj-\>**mode**()

  Inherited, see "Attributes" in Log::Report::Dispatcher

- $obj-\>**name**()

  Inherited, see "Attributes" in Log::Report::Dispatcher

- $obj-\>**needs**( \[$reason\] )

  Inherited, see "Attributes" in Log::Report::Dispatcher

- $obj-\>**type**()

  Inherited, see "Attributes" 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.46, built on June 16, 2026. Website: *http://perl.overmeer.net/CPAN/*

## LICENSE

For contributors see file ChangeLog.

This software is copyright (c) 2007-2026 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.
