App-AcmeCpanauthors
view release on metacpan or search on metacpan
script/_acme-cpanauthors view on Meta::CPAN
# my $fmt = shift;
# my @args;
# for (@_) {
# if (!defined($_)) {
# push @args, '<undef>';
# } elsif (ref $_) {
# require Log::ger::Util unless $Log::ger::_dumper;
# push @args, Log::ger::Util::_dump($_);
# } else {
# push @args, $_;
# }
# }
# # redefine is just a dummy category for perls < 5.22 which
# # don't have 'redundant' yet
# no warnings ($warnings::Bits{'redundant'} ? 'redundant' : 'redefine');
# sprintf $fmt, @args;
# };
#
# [$formatter];
#
#
# }],
# };
#}
#
#1;
## ABSTRACT: Use default Log::ger formatting style
#
#__END__
#
#=pod
#
#=encoding UTF-8
#
#=head1 NAME
#
#Log::ger::Format::Default - Use default Log::ger formatting style
#
#=head1 VERSION
#
#version 0.040
#
#=head1 SYNOPSIS
#
# use Log::ger::Format 'Default';
# use Log::ger;
#
# log_debug "Printed as is";
# # will format the log message as: Printed as is
#
# log_debug "Data for %s is %s", "budi", {foo=>'blah', bar=>undef};
# # will format the log message as: Data for budi is {bar=>undef,foo=>"blah"}
#
#=head1 DESCRIPTION
#
#This is the default Log::ger formatter, which: 1) passes the argument as-is if
#there is only a single argument; or, if there are more than one argument, 2)
#treats the arguments like sprintf(), where the first argument is the template
#and the rest are variables to be substituted to the conversions inside the
#template. In the second case, reference arguments will be dumped using
#L<Data::Dmp> or L<Data::Dumper> by default (but the dumper is configurable by
#setting C<$Log::ger::_dumper>; see for example L<Log::ger::UseDataDump> or
#L<Log::ger::UseDataDumpColor>).
#
#The same code is already included in L<Log::ger::Heavy>; this module just
#repackages it so it's more reusable.
#
#=for Pod::Coverage ^(.+)$
#
#=head1 SEE ALSO
#
#L<Log::ger::Format::Join>
#
#L<Log::ger>
#
#=head1 AUTHOR
#
#perlancar <perlancar@cpan.org>
#
#=head1 COPYRIGHT AND LICENSE
#
#This software is copyright (c) 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
### Log/ger/Format/MultilevelLog.pm ###
#package Log::ger::Format::MultilevelLog;
#
#use strict;
#use warnings;
#
#use Log::ger::Util;
#
#our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
#our $DATE = '2022-06-10'; # DATE
#our $DIST = 'Log-ger'; # DIST
#our $VERSION = '0.040'; # VERSION
#
#sub meta { +{
# v => 2,
#} }
#
#sub get_hooks {
# my %conf = @_;
#
# my $sub_name = $conf{sub_name} || 'log';
# my $method_name = $conf{method_name} || 'log';
#
# return {
# create_filter => [
# __PACKAGE__, # key
# 50, # priority
# sub { # hook
# my %hook_args = @_; # see Log::ger::Manual::Internals/"Arguments passed to hook"
#
# my $filter = sub {
# my $level = Log::ger::Util::numeric_level(shift);
# return 0 unless $level <= $Log::ger::Current_Level;
# {level=>$level};
script/_acme-cpanauthors view on Meta::CPAN
#
#=encoding UTF-8
#
#=head1 NAME
#
#Log::ger::Plugin::MultilevelLog - (DEPRECATED) Old name for Log::ger::Format::MultilevelLog
#
#=head1 VERSION
#
#version 0.040
#
#=head1 DESCRIPTION
#
#This plugin has been renamed to L<Log::ger::Format::MultilevelLog> in 0.038. The
#old name is provided for backward compatibility for now, but is deprecated and
#will be removed in the future. Please switch to the new name and be aware that
#format plugins only affect the current package.
#
#=for Pod::Coverage ^(.+)$
#
#=head1 SEE ALSO
#
#L<Log::ger::Format::MultilevelLog>
#
#=head1 AUTHOR
#
#perlancar <perlancar@cpan.org>
#
#=head1 COPYRIGHT AND LICENSE
#
#This software is copyright (c) 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
### Log/ger/Util.pm ###
#package Log::ger::Util;
#
#use strict;
#use warnings;
#
#our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
#our $DATE = '2022-06-10'; # DATE
#our $DIST = 'Log-ger'; # DIST
#our $VERSION = '0.040'; # VERSION
#
#require Log::ger;
#require Log::ger::Heavy;
#
#sub _dump {
# unless ($Log::ger::_dumper) {
# eval {
# no warnings 'once';
# require Data::Dmp;
# $Data::Dmp::OPT_REMOVE_PRAGMAS = 1;
# 1;
# };
# if ($@) {
# no warnings 'once';
# require Data::Dumper;
# $Log::ger::_dumper = sub {
# local $Data::Dumper::Terse = 1;
# local $Data::Dumper::Indent = 0;
# local $Data::Dumper::Useqq = 1;
# local $Data::Dumper::Deparse = 1;
# local $Data::Dumper::Quotekeys = 0;
# local $Data::Dumper::Sortkeys = 1;
# local $Data::Dumper::Trailingcomma = 1;
# local $Data::Dumper::Useqq = 1; # to show "\034", possible bug in Data::Dumper
# Data::Dumper::Dumper($_[0]);
# };
# } else {
# $Log::ger::_dumper = sub { Data::Dmp::dmp($_[0]) };
# }
# }
# $Log::ger::_dumper->($_[0]);
#}
#
#sub numeric_level {
# my $level = shift;
# return $level if $level =~ /\A\d+\z/;
# return $Log::ger::Levels{$level}
# if defined $Log::ger::Levels{$level};
# return $Log::ger::Level_Aliases{$level}
# if defined $Log::ger::Level_Aliases{$level};
# die "Unknown level '$level'";
#}
#
#sub string_level {
# my $level = shift;
# return $level if defined $Log::ger::Levels{$level};
# $level = $Log::ger::Level_Aliases{$level}
# if defined $Log::ger::Level_Aliases{$level};
# for (keys %Log::ger::Levels) {
# my $v = $Log::ger::Levels{$_};
# return $_ if $v == $level;
# }
# die "Unknown level '$level'";
#}
#
#sub set_level {
# no warnings 'once';
# $Log::ger::Current_Level = numeric_level(shift);
# reinit_all_targets();
#}
#
#sub _action_on_hooks {
# no warnings 'once';
#
# my ($action, $target_type, $target_name, $phase) = splice @_, 0, 4;
#
# my $hooks = $Log::ger::Global_Hooks{$phase} or die "Unknown phase '$phase'";
# if ($target_type eq 'package') {
# $hooks = ($Log::ger::Per_Package_Hooks{$target_name}{$phase} ||= []);
# } elsif ($target_type eq 'object') {
# my ($addr) = $target_name =~ $Log::ger::re_addr;
# $hooks = ($Log::ger::Per_Object_Hooks{$addr}{$phase} ||= []);
# } elsif ($target_type eq 'hash') {
# my ($addr) = $target_name =~ $Log::ger::re_addr;
# $hooks = ($Log::ger::Per_Hash_Hooks{$addr}{$phase} ||= []);
# }
#
# if ($action eq 'add') {
# my $hook = shift;
# # XXX remove duplicate key
# # my $key = $hook->[0];
# unshift @$hooks, $hook;
# } elsif ($action eq 'remove') {
# my $code = shift;
# for my $i (reverse 0..$#{$hooks}) {
( run in 2.164 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )