Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

# ABSTRACT: a place to store captured Dancer2 logs
$Dancer2::Logger::Capture::Trap::VERSION = '0.200004';
use Moo;
has storage => (
is => 'rw',
isa => ArrayRef,
default => sub { [] },
);
sub store {
my ( $self, $level, $message, $fmt_string ) = @_;
push @{ $self->storage }, {
level => $level,
message => $message,
formatted => $fmt_string,
};
}
sub read {
my $self = shift;
my $logs = $self->storage;
$self->storage( [] );
return $logs;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Dancer2::Logger::Capture::Trap - a place to store captured Dancer2 logs
=head1 VERSION
version 0.200004
=head1 SYNOPSIS
my $trap = Dancer2::Logger::Capture::Trap->new;
$trap->store( $level, $message );
my $logs = $trap->read;
=head1 DESCRIPTION
This is a place to store and retrieve capture Dancer2 logs used by
L<Dancer2::Logger::Capture>.
=head2 Methods
=head3 new
=head3 store
$trap->store($level, $message);
Stores a log $message and its $level.
=head3 read
my $logs = $trap->read;
Returns the logs stored as an array ref and clears the storage.
For example...
[{ level => "warning", message => "Danger! Warning! Dancer2!" },
{ level => "error", message => "You fail forever" }
];
=head1 SEE ALSO
L<Dancer2::Logger::Capture>
=head1 AUTHOR
Dancer Core Developers
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Alexis Sukrieh.
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