---
name: "Courier::Filter::Logger::IOHandle"
section: "3pm"
platform: "linux"
package: "courier-filter-perl"
version: "0.200+ds-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Courier::Filter::Logger::IOHandle"
---

# Courier::Filter::Logger::IOHandle(3pm)

I/O handle logger for the Courier::Filter framework

## NAME

Courier::Filter::Logger::IOHandle - I/O handle logger for the Courier::Filter framework

## SYNOPSIS

```
    use Courier::Filter::Logger::IOHandle;

    my $logger = Courier::Filter::Logger::IOHandle->new(
        handle => $handle
    );

    # For use in an individual filter module:
    my $module = Courier::Filter::Module::My->new(
        ...
        logger => $logger,
        ...
    );

    # For use as a global Courier::Filter logger object:
    my $filter = Courier::Filter->new(
        ...
        logger => $logger,
        ...
    );
```

## DESCRIPTION

This class is an I/O handle logger class for use with Courier::Filter and its filter modules.

### Constructor

The following constructor is provided:

- **new(%options)**: returns *Courier::Filter::Logger::IOHandle*

  Creates a new logger that logs messages as lines to an I/O handle.

  `%options` is a list of key/value pairs representing any of the following options:

  - **handle**

    *Required*.  The I/O handle or **IO::Handle** object to which log messages should be written.

  - **timestamp**

    A boolean value controlling whether every log message line should be prefixed with a timestamp (in local time, in ISO format).  Defaults to **false**.

### Instance methods

The following instance methods are provided:

- **log\_error($text)**: throws Perl exceptions

  Logs the error message given as `$text` (a string which may contain newlines). Prefixes each line with a timestamp if the `"timestamp"` option has been set through the constructor.

- **log\_rejected\_message($message, $reason)**: throws Perl exceptions

  Logs the **Courier::Message** given as `$message` as having been rejected due to `$reason` (a string which may contain newlines).

## SEE ALSO

Courier::Filter::Logger, Courier::Filter::Overview.

For AVAILABILITY, SUPPORT, and LICENSE information, see Courier::Filter::Overview.

## AUTHOR

Julian Mehnle \<julian@mehnle.net\>
