File Coverage

blib/lib/Medusa/Logger.pm
Criterion Covered Total %
statement 21 25 84.0
branch 4 6 66.6
condition 2 2 100.0
subroutine 6 8 75.0
pod 4 5 80.0
total 37 46 80.4


line stmt bran cond sub pod time code
1             package Medusa::Logger;
2              
3 3     3   282428 use strict;
  3         7  
  3         98  
4 3     3   13 use warnings;
  3         4  
  3         1093  
5              
6             sub new {
7 7 50   7 1 7308 my ($pkg, %args) = (shift, @_ > 1 ? @_ : %{$_[1] || {}});
  1 100       10  
8 7   100     29 $args{file} ||= 'audit.log';
9 7         20 my $self = bless \%args, $pkg;
10 7 50       1217 open my $fh, '>>', $self->{file} or die $!;
11 7         31 $self->{fh} = $fh;
12 7         37 return $self;
13             }
14              
15             sub debug {
16 5     5 1 58 my ($self, $line) = @_;
17 5         21 $self->log($line);
18             }
19              
20             sub error {
21 0     0 1 0 my ($self, $line) = @_;
22 0         0 $self->log($line);
23             }
24              
25             sub info {
26 0     0 1 0 my ($self, $line) = @_;
27 0         0 $self->log($line);
28             }
29              
30             sub log {
31 5     5 0 24 my ($self, $line) = @_;
32 5         101 flock($self->{fh}, 1);
33 5         14 my $fh = $self->{fh};
34 5         48 print $fh $line . "\n";
35 5         310 flock($self->{fh}, 0);
36             }
37              
38             sub DESTROY {
39 5     5   4067 close $_[0]->{fh};
40             }
41              
42             1;
43              
44             __END__