The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Log::ger::Format::MultilevelLog - Create a log($LEVEL, ...) subroutine/method

VERSION

version 0.042

SYNOPSIS

To use for the current package:

 use Log::ger::Format MultilevelLog => (
     # sub_name => 'log_it',    # optional, defaults to 'log'
     # method_name => 'log_it', # optional, defaults to 'log'
     # exclusive => 1,          # optional, defaults to 0
 );
 use Log::ger;

 log('warn', 'This is a warning');
 log('debug', 'This is a debug, data is %s', $data);

 log_warn "This is also a warning"; # still available, unless you set exclusive to 1

DESCRIPTION

The Log::ger default is to create separate log_LEVEL subroutine (or LEVEL methods) for each level, e.g. log_trace subroutine (or trace method), log_warn (or warn), and so on. But sometimes you might want a log routine that takes $level as the first argument. That is, instead of:

 log_warn('blah ...');

or:

 $log->debug('Blah: %s', $data);

you prefer:

 log('warn', 'blah ...');

or:

 $log->log('debug', 'Blah: %s', $data);

This format plugin can create such log routine for you.

Note: the multilevel log is slightly slower because of the extra argument and additional string level -> numeric level conversion. See benchmarks in Bencher::Scenarios::Log::ger.

Note: the individual separate log_LEVEL subroutines (or LEVEL methods) are still installed, unless you specify configuration "exclusive" to true.

CONFIGURATION

sub_name

String. Defaults to log.

method_name

String. Defaults to log.

exclusive

Boolean. If set to true, will block the generation of the default log_LEVEL subroutines or LEVEL methods (e.g. log_warn, trace, ...).

SEE ALSO

Log::ger::Format::HashArgs

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2023, 2022, 2020, 2019, 2018, 2017 by perlancar <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.