The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Log::ger::Manual::Tutorial::400_Output - Logging outputs

VERSION

version 0.032.001

DESCRIPTION

PRODUCING AND CONSUMING

The act of logging:

 log_info("This is just an informational message");
 log_warn("This is a warning, you have been warned");

is called producing the log. By default the messages don't go anywhere so you do not see them. When an application is run, logging output(s) (and level) are set up; only then the messages will be shown, either to the terminal (screen), file, or some other destination. The act of taking a log message and showing it through some output is called consuming the log.

CHOOSING AN OUTPUT

There are a variety of output modules you can choose in Log::ger, for example:

Search CPAN for more Log::ger::Output::* modules. And when you don't find one suitable for your needs, it's easy to write your own (see 490_WritingAnOutputPlugin).

To select an output:

 use Log::ger::Output 'Screen'; # note: NOT 'use Log::ger::Output::Screen'!

or:

 use Log::ger::Output;
 Log::ger::Output->set('Screen');

To pass configuration parameters to an output module:

 use Log::ger::Output File => (path => '/tmp/app.log', lazy => 1);

or:

 use Log::ger::Output;
 Log::ger::Output->set(File => (path => '/tmp/app.log', lazy => 1));

If you want to output to two or more destinations, you can use Log::ger::Output::Composite which multiplexes the message to multiple outputs:

 use Log::ger::Output Composite => (
     outputs => {
         Screen => {},
         File   => { conf => {path=>'/tmp/app.log', lazy=>1} },
     },
 );

Apart from multiplexing output, Composite can also set per-output level, per-category level, and per-output per-category level. We will cover Composite in subsequent tutorial post.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020, 2019, 2018, 2017 by perlancar@cpan.org.

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