File Coverage

blib/lib/UAV/Pilot/Logger.pm
Criterion Covered Total %
statement 11 17 64.7
branch 0 2 0.0
condition n/a
subroutine 4 6 66.6
pod n/a
total 15 25 60.0


line stmt bran cond sub pod time code
1             # Copyright (c) 2015 Timm Murray
2             # All rights reserved.
3             #
4             # Redistribution and use in source and binary forms, with or without
5             # modification, are permitted provided that the following conditions are met:
6             #
7             # * Redistributions of source code must retain the above copyright notice,
8             # this list of conditions and the following disclaimer.
9             # * Redistributions in binary form must reproduce the above copyright
10             # notice, this list of conditions and the following disclaimer in the
11             # documentation and/or other materials provided with the distribution.
12             #
13             # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14             # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15             # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16             # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
17             # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18             # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19             # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20             # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21             # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22             # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23             # POSSIBILITY OF SUCH DAMAGE.
24             package UAV::Pilot::Logger;
25             $UAV::Pilot::Logger::VERSION = '1.3';
26 1     1   722 use v5.14;
  1         4  
27 1     1   6 use Moose::Role;
  1         3  
  1         10  
28 1     1   5226 use UAV::Pilot;
  1         3  
  1         21  
29 1     1   6 use Log::Log4perl;
  1         3  
  1         10  
30              
31             my $LOGGER = undef;
32              
33              
34             sub _logger
35             {
36 0     0     my ($class) = @_;
37 0 0         return $LOGGER if defined $LOGGER;
38 0           UAV::Pilot->init_log;
39 0           return Log::Log4perl->get_logger( $class->_logger_name );
40             }
41              
42             sub _logger_name
43             {
44 0     0     my ($self) = @_;
45 0           return ref $self;
46             }
47              
48              
49             1;
50             __END__
51              
52              
53             =head1 NAME
54              
55             UAV::Pilot::Logger
56              
57             =head1 DESCRIPTION
58              
59             A Moose role for C<UAV::Pilot> classes that want to log things.
60              
61             Provides the attribute C<_logger>, which returns a C<Log::Log4perl::Logger> for
62             your object.
63              
64             Also provides a method C<_logger_name> for fetching the logger name. This will
65             be your class's name by default. Override as you see fit.
66              
67             =cut