Log-Log4perl-Appender-Chunk
view release on metacpan or search on metacpan
t/02-store.t view on Meta::CPAN
#! perl -T
use Test::More;
package MyStore;
use Moose;
extends qw/Log::Log4perl::Appender::Chunk::Store/;
has 'messages' => ( is => 'ro', isa => 'HashRef', default => sub{ {}; } );
sub store{
my ($self, $chunk_id, $big_message) = @_;
$self->messages()->{$chunk_id} = $big_message;
}
1;
package main;
use Log::Log4perl;
my $conf = q|
log4perl.rootLogger=TRACE, Chunk
layout_class=Log::Log4perl::Layout::PatternLayout
layout_pattern=%m%n
log4perl.appender.Chunk=Log::Log4perl::Appender::Chunk
log4perl.appender.Chunk.store_class=+MyStore
log4perl.appender.Chunk.layout=${layout_class}
log4perl.appender.Chunk.layout.ConversionPattern=${layout_pattern}
|;
Log::Log4perl::init(\$conf);
ok( my $ca = Log::Log4perl->appender_by_name('Chunk') , "Ok got Chunk appender");
ok( my $store = $ca->store() , "Ok got store for the logger");
my $LOGGER = Log::Log4perl->get_logger();
$LOGGER->info("Something outside any context");
## Chunk 12345
Log::Log4perl::MDC->put('chunk', '12345');
$LOGGER->trace("Some trace inside the chunk");
$LOGGER->debug("Some debug inside the chunk");
$LOGGER->info("Some info inside the chunk");
Log::Log4perl::MDC->put('chunk', undef);
## End of Chunk 12345
$LOGGER->info("Outside context again");
## Chunk 0001
Log::Log4perl::MDC->put('chunk', '0001');
$LOGGER->info("Inside chunk 0001");
$LOGGER->info("Inside chunk 0001 again");
Log::Log4perl::MDC->put('chunk' , '0002' );
## End of Chunk 0001, start chunk 0002
$LOGGER->info("Inside a brand new chunk 0002");
$LOGGER->info("Inside a brand new chunk 0002 again");
Log::Log4perl::MDC->put('chunk' , undef );
## End of chunk 0002
$LOGGER->info("Left chunk context");
$LOGGER->info("Left chunk context again");
( run in 1.331 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )