File Coverage

blib/lib/Dancer/Logger/LogHandler.pm
Criterion Covered Total %
statement 34 34 100.0
branch 1 2 50.0
condition 6 6 100.0
subroutine 10 10 100.0
pod 1 1 100.0
total 52 53 98.1


line stmt bran cond sub pod time code
1             package Dancer::Logger::LogHandler;
2              
3 2     2   22301 use strict;
  2         5  
  2         75  
4 2     2   11 use warnings;
  2         4  
  2         65  
5 2     2   10 use base 'Dancer::Logger::Abstract';
  2         19  
  2         2108  
6              
7 2     2   361186 use Log::Handler;
  2         75857  
  2         19  
8 2     2   97 use Dancer::Config 'setting';
  2         4  
  2         165  
9              
10 2     2   11 use vars '$VERSION';
  2         7  
  2         589  
11             $VERSION = '0.01';
12              
13             my $_logger;
14              
15             sub _config {
16 1     1   5 my $conf = setting('log_handler');
17 1 50       14 $conf ? return $conf : return {
18             screen => {
19             log_to => "STDERR",
20             maxlevel => "debug",
21             minlevel => "error"
22             }
23             };
24             }
25              
26             sub init {
27 1     1 1 758 my $self = shift;
28 1         3 my $settings = _config();
29 1         4 $_logger = Log::Handler->new();
30 1         56 map { $_logger->add($_ => $settings->{$_}) } keys %$settings;
  1         4  
31             }
32              
33             sub _log {
34 4     4   12802 my ($self, $level, $message) = @_;
35 4         8 $_logger->$level(_format($message));
36             }
37              
38             sub _format {
39 5     5   3421 my $message = shift;
40 5         24 my ($package, $file, $line) = caller(4);
41 5   100     19 $package ||= '-';
42 5   100     12 $file ||= '-';
43 5   100     15 $line ||= '-';
44              
45 5         11 chomp $message;
46 5         47 return "$message in $file l. $line\n";
47             }
48              
49             1;
50              
51             __END__