File Coverage

blib/lib/Narada/Log.pm
Criterion Covered Total %
statement 31 33 93.9
branch 5 8 62.5
condition 2 4 50.0
subroutine 8 8 100.0
pod n/a
total 46 53 86.7


line stmt bran cond sub pod time code
1             package Narada::Log;
2              
3 4     4   1617447 use warnings;
  4         9  
  4         186  
4 4     4   20 use strict;
  4         7  
  4         121  
5 4     4   18 use Carp;
  4         6  
  4         453  
6              
7             our $VERSION = 'v2.3.7';
8              
9 4     4   1363 use Narada::Config qw( get_config_line );
  4         8  
  4         15  
10 4     4   4073 use Log::Fast;
  4         49853  
  4         209  
11              
12              
13             _init_log();
14              
15              
16             sub import {
17 4     4   31 my @args = @_;
18 4         17 my $pkg = caller 0;
19 4     4   21 no strict 'refs';
  4         5  
  4         736  
20 4         65 for (@args) {
21 7 100       24 if (m/\A\$(.*)/xms) {
22 3         9 *{$pkg.q{::}.$1} = \Log::Fast->global();
  3         33  
23             }
24             }
25 4         2987 return;
26             }
27              
28             sub _init_log {
29 4   50 4   6 my $type = eval { get_config_line('log/type') } || 'syslog';
30 4   50     55 my $path = eval { get_config_line('log/output') } || return;
31 4 50       18 if ($type eq 'syslog') {
    50          
32 0         0 Log::Fast->global()->config({
33             level => get_config_line('log/level'),
34             prefix => q{},
35             type => 'unix',
36             path => $path,
37             });
38             }
39             elsif ($type eq 'file') {
40 4 50       379 open my $fh, '>>', $path or croak "open: $!"; ## no critic (InputOutput::RequireBriefOpen)
41 4         21 Log::Fast->global()->config({
42             level => get_config_line('log/level'),
43             prefix => q{},
44             type => 'fh',
45             fh => $fh,
46             });
47             }
48             else {
49 0         0 croak "Unsupported value '$type' in config/log/type";
50             }
51 4         2956 return;
52             }
53              
54              
55             1; # Magic true value required at end of module
56             __END__