File Coverage

blib/lib/OTRS/OPM/Installer/Logger.pm
Criterion Covered Total %
statement 37 37 100.0
branch 2 2 100.0
condition 1 2 50.0
subroutine 10 10 100.0
pod 0 2 0.0
total 50 53 94.3


line stmt bran cond sub pod time code
1             package OTRS::OPM::Installer::Logger;
2             $OTRS::OPM::Installer::Logger::VERSION = '0.05';
3             # ABSTRACT: A simple logger for OTRS::OPM::Installer
4              
5 14     14   329918 use strict;
  14         68  
  14         452  
6 14     14   89 use warnings;
  14         40  
  14         336  
7              
8 14     14   2008 use Moo;
  14         36359  
  14         84  
9 14     14   9698 use IO::All;
  14         44230  
  14         105  
10 14     14   3632 use File::Temp;
  14         57026  
  14         1204  
11 14     14   8968 use Time::Piece;
  14         144120  
  14         83  
12              
13             my $file = File::Temp->new->filename;
14              
15             has log => ( is => 'ro', lazy => 1, default => sub { $file } );
16              
17             for my $level (qw/notice info debug warn error/) {
18 14     14   1876 no strict 'refs';
  14         31  
  14         5061  
19             *{"OTRS::OPM::Installer::Logger::$level"} = sub {
20 12     12   31071 shift->print( $level, @_ );
21             };
22             }
23              
24             sub print {
25 12     12 0 76 my ($self, $tag, %attr) = @_;
26              
27             my $attrs = join " ", map{
28 12   50     88 my $escaped = $attr{$_} // '';
  32         122  
29 32         78 $escaped =~ s{\\}{\\\\}g;
30 32         60 $escaped =~ s{"}{\\"}g;
31              
32 32         232 sprintf '%s="%s"', $_, $escaped
33             }sort keys %attr;
34              
35 12         65 my $date = localtime;
36 12         941 my $message = sprintf "[%s] [%s %s] %s \n", uc $tag, $date->ymd, $date->hms, $attrs;
37 12         641 $message >> io $self->log;
38             }
39              
40             sub BUILD {
41 15     15 0 25968 my ($self, $param) = @_;
42              
43 15 100       88 if ( $param->{path} ) {
44 1         3 $file = $param->{path};
45             }
46              
47 15         86 my $date = localtime;
48 15         1525 my $message = sprintf "[DEBUG] [%s %s] Start installation...\n", $date->ymd, $date->hms;
49              
50 15         1512 $message > io $self->log
51             }
52            
53             1;
54              
55             __END__