Binance-API

 view release on metacpan or  search on metacpan

lib/Binance/API/Logger.pm  view on Meta::CPAN

Provides a wrapper for your desired logger. Carps log calls higher than "debug"
level

=head1 SYNOPSIS

    use Binance::API;

    my $logger = Binance::API::Logger->new($log4perl);

    $logger->warn("This is a warning");

=head1 METHODS

=cut

=head2 new

    my $logger = Binance::API::Logger->new($log4perl);

Instantiates a new C<Binance::API::Logger> object.

B<PARAMETERS>

=over

=item A logger object that implements (at least) debug, warn,
error, fatal level logging.

[OPTIONAL]

=back

B<RETURNS>

A C<Binance::API::Logger> object.

=cut

sub new {
    my $class = shift;

    my $self = {
        logger => undef,
    };

    $self->{logger} = shift if @_;

    bless $self, $class;
}

sub AUTOLOAD {
    my $self = shift;

    my $level = our $AUTOLOAD;
    $level =~ s/.*://;

    return if $level eq 'DESTROY';

    my $message = shift || "";

    my $sub = (caller(1))[3];
    my $full_message = "[$sub] ". $message;

    if ($level eq 'debug' || $level eq 'trace') {
        carp $full_message if DEBUG;
    } else {
        carp $full_message;
    }

    if ($self->{logger} && $self->{logger}->can($level)) {
        $self->{logger}->$level($full_message);
    }
}

1;



( run in 1.762 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )