File Coverage

blib/lib/Plack/Middleware/LogAny.pm
Criterion Covered Total %
statement 26 26 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod 2 2 100.0
total 38 38 100.0


line stmt bran cond sub pod time code
1             #<<<
2 2     2   351242 use strict; use warnings;
  2     2   10  
  2         54  
  2         10  
  2         4  
  2         90  
3             #>>>
4              
5             package Plack::Middleware::LogAny;
6              
7 2     2   12 use parent qw( Plack::Middleware );
  2         5  
  2         9  
8 2     2   25377 use Log::Any qw();
  2         4  
  2         39  
9 2     2   11 use Plack::Util::Accessor qw( category logger );
  2         4  
  2         10  
10              
11             our $VERSION = '0.001003';
12              
13             sub prepare_app {
14 4     4 1 7224 my ( $self ) = @_;
15 4 100       17 $self->logger( Log::Any->get_logger( category => defined $self->category ? $self->category : '' ) );
16             }
17              
18             sub call {
19 4     4 1 50988 my ( $self, $env ) = @_;
20              
21             $env->{ 'psgix.logger' } = sub {
22 8     8   1081 my ( $level, $message ) = @{ $_[ 0 ] }{ qw( level message ) };
  8         29  
23              
24 8         25 my $logger = $self->logger;
25 8         47 @_ = ( $logger, $message );
26 8         12 goto &{ $logger->can( $level ) };
  8         68  
27 4         22 };
28              
29 4         25 $self->app->( $env );
30             }
31              
32             1;