File Coverage

blib/lib/Sys/Export/LogAny.pm
Criterion Covered Total %
statement 19 40 47.5
branch 0 12 0.0
condition 0 4 0.0
subroutine 7 17 41.1
pod n/a
total 26 73 35.6


line stmt bran cond sub pod time code
1             package Sys::Export::LogAny;
2              
3             our $VERSION = '0.006'; # VERSION
4             # ABSTRACT: Use Log::Any without depending on it
5              
6              
7 19     19   186 use v5.26;
  19         53  
8 19     19   102 use warnings;
  19         50  
  19         3572  
9              
10 19     19   96 if (eval 'use Log::Any 1.051; 1') {
  19         325  
  19         96  
11             our @ISA= ( 'Log::Any' );
12             my $lev= !$ENV{DEBUG}? 'info' : $ENV{DEBUG} > 1? 'trace' : 'debug';
13             Log::Any->import(default_adapter => [ 'Stderr', log_level => $lev ]);
14             } else {
15             *get_logger= sub { bless {}, 'Sys::Export::LogAny::_Logger'; };
16             *import= sub {
17             my $class= shift;
18             for (@_) {
19             if ($_ eq '$log') {
20             my $caller= caller;
21             my $logger= $class->get_logger($caller);
22 19     19   121 no strict 'refs';
  19         49  
  19         2090  
23             *{$caller . '::log'}= \$logger;
24             }
25             else { die "Can't export '$_'"; }
26             }
27             };
28             }
29              
30             package Sys::Export::LogAny::_Logger {
31 19     19   165 use v5.26;
  19         48  
32 19     19   92 use warnings;
  19         54  
  19         731  
33 19     19   80 use experimental qw( signatures );
  19         22  
  19         140  
34             sub _dump {
35 0     0     state $dumper_loaded= require Data::Dumper;
36 0           chomp(my $s= Data::Dumper->new([$_[0]])->Terse(1)->Sortkeys(1)->Dump);
37 0           $s;
38             }
39 0     0     sub is_info { 1 }
40 0     0     sub info($self, @msg) {
  0            
  0            
  0            
41 0           print STDERR join(' ', @msg)."\n"
42             }
43 0     0     sub infof($self, $fmt, @args) {
  0            
  0            
  0            
  0            
44 0 0         printf STDERR $fmt."\n", map +(ref? _dump($_) : defined? $_ : '(undef)'), @args;
    0          
45             }
46             *error = *warn = *notice = *info;
47             *errorf= *warnf = *noticef= *infof;
48             *is_error= *is_warn= *is_notice= *is_info;
49 0   0 0     sub is_debug { ($ENV{DEBUG} // 0) >= 1 }
50 0   0 0     sub is_trace { ($ENV{DEBUG} // 0) >= 2 }
51 0 0   0     sub debug { is_debug? info (@_) : () }
52 0 0   0     sub debugf { is_debug? infof(@_) : () }
53 0 0   0     sub trace { is_trace? info (@_) : () }
54 0 0   0     sub tracef { is_trace? infof(@_) : () }
55             }
56              
57             1;
58              
59             __END__