File Coverage

blib/lib/Log/Any/Adapter/Stdout.pm
Criterion Covered Total %
statement 33 33 100.0
branch 7 8 87.5
condition 2 3 66.6
subroutine 16 16 100.0
pod 0 1 0.0
total 58 61 95.0


line stmt bran cond sub pod time code
1 3     4   194053 use 5.008001;
  3         11  
2 3     4   17 use strict;
  3         5  
  3         100  
3 3     3   18 use warnings;
  3         6  
  3         308  
4              
5             package Log::Any::Adapter::Stdout;
6              
7             # ABSTRACT: Simple adapter for logging to STDOUT
8             our $VERSION = '1.718';
9              
10 3     3   616 use Log::Any::Adapter::Util ();
  3         6  
  3         77  
11              
12 3     3   786 use Log::Any::Adapter::Base;
  3         7  
  3         811  
13             our @ISA = qw/Log::Any::Adapter::Base/;
14              
15             my $trace_level = Log::Any::Adapter::Util::numeric_level('trace');
16              
17             sub init {
18 8     8 0 16 my ($self) = @_;
19 8 100 66     56 if ( exists $self->{log_level} && $self->{log_level} =~ /\D/ ) {
20 6         23 my $numeric_level = Log::Any::Adapter::Util::numeric_level( $self->{log_level} );
21 6 100       17 if ( !defined($numeric_level) ) {
22 1         28 require Carp;
23 1         293 Carp::carp( sprintf 'Invalid log level "%s". Defaulting to "%s"', $self->{log_level}, 'trace' );
24             }
25 6         22 $self->{log_level} = $numeric_level;
26             }
27 8 100       29 if ( !defined $self->{log_level} ) {
28 3         8 $self->{log_level} = $trace_level;
29             }
30             }
31              
32             foreach my $method ( Log::Any::Adapter::Util::logging_methods() ) {
33 3     3   51 no strict 'refs';
  3         6  
  3         501  
34             my $method_level = Log::Any::Adapter::Util::numeric_level($method);
35             *{$method} = sub {
36 2     2   7 my ( $self, $text ) = @_;
        8      
        8      
37 2 50       6 return if $method_level > $self->{log_level};
38 2         12 print STDOUT "$text\n";
39             };
40             }
41              
42             foreach my $method ( Log::Any::Adapter::Util::detection_methods() ) {
43 3     3   22 no strict 'refs';
  3         6  
  3         363  
44             my $base = substr( $method, 3 );
45             my $method_level = Log::Any::Adapter::Util::numeric_level($base);
46             *{$method} = sub {
47 9     9   51 return !!( $method_level <= $_[0]->{log_level} );
        8      
        8      
        8      
        8      
48             };
49             }
50              
51             1;
52              
53             __END__