Amazon-S3-Lite
view release on metacpan or search on metacpan
lib/Amazon/S3/Lite/Logger.pm view on Meta::CPAN
########################################################################
# Minimal STDERR logger â used when Log::Log4perl is not available
# Implements the same interface callers expect
########################################################################
package Amazon::S3::Lite::Logger;
use strict;
use warnings;
our $VERSION = '1.2.2';
use Readonly;
Readonly::Scalar our $LEVELS => {
TRACE => 5000,
DEBUG => 10_000,
INFO => 20_000,
WARN => 30_000,
ERROR => 40_000,
FATAL => 50_000,
};
########################################################################
sub new {
########################################################################
my ( $class, @args ) = @_;
my $options = ref $args[0] ? $args[0] : {@args};
my $self = bless $options, $class;
$self->{log_level} //= 'warn';
return $self;
}
########################################################################
sub _log_level {
########################################################################
my ($self) = @_;
my $level = uc $self->{log_level};
return $LEVELS->{$level} // 0;
}
########################################################################
sub trace { # silent
########################################################################
my ( $self, $msg ) = @_;
return if $self->_log_level > $LEVELS->{TRACE};
return print {*STDERR} "TRACE - $msg\n";
}
########################################################################
sub debug {
########################################################################
my ( $self, $msg ) = @_;
return if $self->_log_level > $LEVELS->{DEBUG};
return print {*STDERR} "DEBUG - $msg\n";
}
########################################################################
sub level {
########################################################################
my ( $self, $level ) = @_;
return $self->_log_level
if !$level;
$self->{log_level} = $level;
return $level;
}
########################################################################
sub info {
########################################################################
my ( $self, $msg ) = @_;
return if $self->_log_level > $LEVELS->{INFO};
return print {*STDERR} "INFO - $msg\n";
}
########################################################################
sub warn { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
########################################################################
my ( $self, $msg ) = @_;
return if $self->_log_level > $LEVELS->{WARN};
( run in 1.263 second using v1.01-cache-2.11-cpan-f4a522933cf )