---
name: "Courier::Filter::Logger::File"
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::File"
---

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

File logger for the Courier::Filter framework

## NAME

Courier::Filter::Logger::File - File logger for the Courier::Filter framework

## SYNOPSIS

```
    use Courier::Filter::Logger::File;
    my $logger = Courier::Filter::Logger::File->new(
        file_name => $file_name
    );
    # 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 a file logger class for use with Courier::Filter and its filter modules.  It is derived from **Courier::Filter::Logger::IOHandle**.

### Constructor

The following constructor is provided:

- **new(%options)**: returns *Courier::Filter::Logger::File*; throws *Courier::Error*

  Creates a new logger that logs messages as lines to a file.  Opens the file for writing, creating it if necessary.

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

  - **file\_name**

    *Required*.  The name of the file 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, as inherited from **Courier::Filter::Logger::IOHandle**:

- **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::IOHandle, Courier::Filter::Logger, Courier::Filter::Overview.

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

## AUTHOR

Julian Mehnle \<julian@mehnle.net\>
