From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use strict;
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-12-29'; # DATE
our $DIST = 'Log-ger'; # DIST
our $VERSION = '0.042'; # VERSION
sub set {
my $pkg = shift;
my %args;
if (ref $_[0] eq 'HASH') {
%args = %{shift()};
} else {
%args = (name => shift, conf => {@_});
}
$args{prefix} ||= $pkg . '::';
$args{replace_package_regex} = $pkg->_replace_package_regex;
Log::ger::Util::set_plugin(%args);
}
sub set_for_current_package {
my $pkg = shift;
my %args;
if (ref $_[0] eq 'HASH') {
%args = %{shift()};
} else {
%args = (name => shift, conf => {@_});
}
my $caller = caller(0);
$args{target} = 'package';
$args{target_arg} = $caller;
set($pkg, \%args);
}
sub _import_sets_for_current_package { 0 }
sub _replace_package_regex { undef }
sub import {
if (@_ > 1) {
if ($_[0]->_import_sets_for_current_package) {
goto &set_for_current_package;
} else {
goto &set;
}
}
}
1;
# ABSTRACT: Use a plugin
__END__
=pod
=encoding UTF-8
=head1 NAME
Log::ger::Plugin - Use a plugin
=head1 VERSION
version 0.042
=head1 SYNOPSIS
To set globally:
use Log::ger::Plugin;
Log::ger::Plugin->set('OptAway');
or:
use Log::ger::Plugin 'OptAway';
To set for current package only:
use Log::ger::Plugin;
Log::ger::Plugin->set_for_current_package('OptAway');
=for Pod::Coverage ^(.+)$
=head1 SEE ALSO
L<Log::ger::Format>
L<Log::ger::Layout>
L<Log::ger::Output>
L<Log::ger::Filter>
=head1 AUTHOR
perlancar <perlancar@cpan.org>
=head1 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.
=cut