Akamai-Open-Client

 view release on metacpan or  search on metacpan

lib/Akamai/Open/Debug.pm  view on Meta::CPAN

package Akamai::Open::Debug;
BEGIN {
  $Akamai::Open::Debug::AUTHORITY = 'cpan:PROBST';
}
# ABSTRACT: Debugging interface for the Akamai Open API Perl clients
$Akamai::Open::Debug::VERSION = '0.03';
use strict;
use warnings;

use MooseX::Singleton;
use Data::Dumper qw/Dumper/;
use Log::Log4perl;

our $default_conf = q/
    log4perl.category.Akamai.Open.Debug   = ERROR, Screen
    log4perl.appender.Screen              = Log::Log4perl::Appender::Screen
    log4perl.appender.Screen.stderr       = 1
    log4perl.appender.Screen.layout       = Log::Log4perl::Layout::PatternLayout
    log4perl.appender.Screen.layout.ConversionPattern = %p - %C - %m%n
/;

has 'config' => (is => 'rw');
has 'logger' => (is => 'rw', default => sub{return(Log::Log4perl::get_logger('Akamai::Open::Debug'));});

# is called after Moose has builded the object
sub BUILD {
    my $self = shift;
    $self->config($default_conf) unless($self->config);
    Log::Log4perl::init_once(\$self->config);
    return;
}

sub dump_obj {
    my $self = shift;
    my $ref = shift;
    $self->logger->info('Dumping object: ', Dumper($ref));
    return;
}

sub debugger {
    my $self = shift;
    my $new = shift;
    my $prev = shift;
    my $sub = (caller(1))[3];
    $self->debug->logger->debug(sprintf('setting %s to %s (%s before)', $sub, $new, $prev ? $prev : 'undef'));
    return;
}

1;

__END__

=pod

=encoding utf-8

=head1 NAME

Akamai::Open::Debug - Debugging interface for the Akamai Open API Perl clients

=head1 VERSION

version 0.03

=head1 SYNOPSIS

 use Akamai::Open::Debug;
 use Akamai::Open::Client;
 
 my $log_conf = q/
     log4perl.category.Akamai.Open.Debug   = DEBUG, Screen



( run in 1.913 second using v1.01-cache-2.11-cpan-39bf76dae61 )