logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       perlancar <perlancar@cpan.org>

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", ...).

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.

Name

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

See Also

       Log::ger::Format::HashArgs

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

Version

       version 0.042

See Also