---
name: "Log::Log4perl::Appender::Screen"
section: "3pm"
platform: "linux"
package: "perl-log-log4perl"
version: "1.58-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Log::Log4perl::Appender::Screen"
---

# Log::Log4perl::Appender::Screen(3pm)

Log to STDOUT/STDERR

## NAME

Log::Log4perl::Appender::Screen - Log to STDOUT/STDERR

## SYNOPSIS

```
    use Log::Log4perl::Appender::Screen;
    my $app = Log::Log4perl::Appender::Screen->new(
      autoflush => 1,
      stderr    => 0,
      utf8      => 1,
    );
    $file->log(message => "Log me\n");
```

## DESCRIPTION

This is a simple appender for writing to STDOUT or STDERR.

The constructor `new()` takes an optional parameter `"stderr"`:

- •

  If set to a false value, it will log all levels to STDOUT (or, more accurately, whichever file handle is selected via `select()`, STDOUT by default).

- •

  If set to a hash, then any `"log4p_level"` with a truthy value will dynamically use STDERR, or STDOUT otherwise.

- •

  Otherwise, if a true value (the default setting is 1), messages will be logged to STDERR.

```
    # All messages/levels to STDERR
    my $app = Log::Log4perl::Appender::Screen->new(
        stderr  => 1,
    );
    # Only ERROR and FATAL to STDERR (case-sensitive)
    my $app = Log::Log4perl::Appender::Screen->new(
        stderr  => { ERROR => 1, FATAL => 1},
    );
```

Design and implementation of this module has been greatly inspired by Dave Rolsky's `"Log::Dispatch"` appender framework.

To enable printing wide utf8 characters, set the utf8 option to a true value:

```
    my $app = Log::Log4perl::Appender::Screen->new(
      stderr    => 1,
      utf8      => 1,
    );
```

This will issue the necessary binmode command to the selected output channel (stderr/stdout).

To enable autoflush, set the `"autoflush"` option to a true value:

```
    my $app = Log::Log4perl::Appender::Screen->new(
      autoflush => 1,
    );
```

This will issue the necessary autoflush command to the selected output channel (stderr/stdout).

This is required in containers, especially when the log volume is low, to not buffer the log messages and cause a significant delay.

## LICENSE

Copyright 2002-2026 by Mike Schilli \<m@perlmeister.com\> and Kevin Goess \<cpan@goess.org\>.

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