File Coverage

blib/lib/Datahub/Factory/Logger.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package Datahub::Factory::Logger;
2              
3 1     1   464 use Datahub::Factory::Sane;
  1         2  
  1         35  
4              
5             our $VERSION = '1.77';
6              
7 1     1   5 use Moo::Role;
  1         2  
  1         4  
8 1     1   641 use MooX::Aliases;
  1         2542  
  1         6  
9 1     1   270 use namespace::clean;
  1         2  
  1         8  
10              
11             with 'MooX::Role::Logger';
12              
13             alias log => '_logger';
14              
15             1;
16              
17             __END__
18              
19             =head1 NAME
20              
21             Datahub::Factory::Logger - A role for classes that need logging capabilities
22              
23             =head1 SYNOPSIS
24              
25             package MyApp::View;
26             use Moo;
27              
28             with 'Datahub::Factory::Logger';
29              
30             sub something {
31             my ($self) = @_;
32             $self->log->debug("started bar"); # logs with default class catergory "MyApp::View"
33             $self->log->error("started bar");
34             }
35              
36             =head1 DESCRIPTION
37              
38             A logging role building a very lightweight wrapper to L<Log::Any>. Connecting
39             a Log::Any::Adapter should be performed prior to logging the first log message,
40             otherwise nothing will happen, just like with Log::Any.
41              
42             The logger needs to be setup before using the logger, which could happen in the main application:
43              
44             package main;
45             use Log::Any::Adapter;
46             use Log::Log4perl;
47              
48             Log::Any::Adapter->set('Log4perl');
49             Log::Log4perl::init('./log4perl.conf');
50              
51             my $app = MyApp::View->new;
52             $app->something(); # will print debug and error messages
53              
54             with log4perl.conf like:
55              
56             log4perl.rootLogger=DEBUG,OUT
57             log4perl.appender.OUT=Log::Log4perl::Appender::Screen
58             log4perl.appender.OUT.stderr=1
59             log4perl.appender.OUT.utf8=1
60              
61             log4perl.appender.OUT.layout=PatternLayout
62             log4perl.appender.OUT.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n
63              
64             See L<Log::Log4perl> for more configuration options and selecting which messages
65             to log and which not.
66              
67             =head1 DATAHUB FACTORY COMMAND LINE
68              
69             When using the L<dhconveyor> command line, the logger can be activated using the
70             -D option on all Datahub Factory commands:
71              
72             $ dhconveyor -D transport ...
73              
74             =head1 METHODS
75              
76             L<Log::Any>
77              
78             =head1 ACKNOWLEDGMENTS
79              
80             Code and documentation blatantly stolen from C<Catmandu> who got it from
81             C<MooX::Log::Any>.
82              
83             =cut