Appender::Screen(3)

πŸ’… Appender::Screen(3) β€” like, the manual page, but make it make sense

okay bestie so you found the manpage for Appender::Screen(3) in the Log::Log4perl universe and I'm gonna walk you through it, no gatekeeping πŸ’–


✨ NAME ✨

Log::Log4perl::Appender::Screen β€” the appender that just… logs to STDOUT/STDERR. That's it. That's the whole gig. Simple queen behavior πŸ‘‘


πŸŽ€ 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");

yes bestie copy it exactly, it's giving copy-paste-and-thrive 🌸


πŸ¦‹ DESCRIPTION πŸ¦‹

This is a simple appender for writing to STDOUT or STDERR. Lowkey does one thing and does it well, we stan.

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

  • If you set it to a false value, it will log all levels to STDOUT β€” or, more accurately, whichever file handle is selected via select(), with STDOUT being the default. iykyk.
  • If you set it to a hash, then any "log4p_level" with a truthy value will dynamically use STDERR, and STDOUT otherwise. fancy, dynamic, main character energy ✨
  • Otherwise, if it's a true value (and 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},
);
⚠️ heads up bestie: that second example is case-sensitive. ERROR and FATAL have to be uppercase or it will simply Not Work. not me learning that the hard way 😭

The design and implementation of this module has been greatly inspired by Dave Rolsky's "Log::Dispatch" appender framework. giving credit where credit is due, we love to see it 🫢


🌸 utf8, for the wide characters 🌸

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). iconic. no more mojibake πŸ’€


🌈 autoflush, for the impatient logs 🌈

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). slay.

This is required in containers, especially when the log volume is low, so it doesn't buffer your log messages and cause a significant delay. fr fr, if your logs are vanishing into the void in a container, this is your girl πŸ”₯


πŸ‘‘ LICENSE πŸ‘‘

Copyright 2002-2013 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. so generous, so legal, so correct πŸ’œ


⭐ AUTHOR ⭐

Please contribute patches to the project on Github:

http://github.com/mschilli/log4perl

Send bug reports or requests for enhancements to the authors via our

MAILING LIST (questions, bug reports, suggestions/patches): log4perl-devel@lists.sourceforge.net

Authors (please contact them via the list above, not directly): Mike Schilli <m@perlmeister.com>, Kevin Goess <cpan@goess.org>

Contributors (in alphabetical order): Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy Grundman, Paul Harrington, Alexander Hartmaier David Hull, Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter, Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope, Lars Thegler, David Viner, Mac Yang.

like okay that's a lot of names and every single one of them ate πŸ’…


🧚 and that's the whole page bestie! this one shipped as perl v5.42.0, dated 2022-10-22, filed under Appender::Screen(3) β€” go forth and log responsibly πŸ’–βœ¨πŸŽ€
πŸ“¦ where this page comes from