NAME
Datahub::Factory::Logger - A role for classes that need logging capabilities
SYNOPSIS
package MyApp::View;
use Moo;
with 'Datahub::Factory::Logger';
sub something {
my ($self) = @_;
$self->log->debug("started bar"); # logs with default class catergory "MyApp::View"
$self->log->error("started bar");
}
DESCRIPTION
A logging role building a very lightweight wrapper to Log::Any. Connecting a Log::Any::Adapter should be performed prior to logging the first log message, otherwise nothing will happen, just like with Log::Any.
The logger needs to be setup before using the logger, which could happen in the main application:
package main;
use Log::Any::Adapter;
use Log::Log4perl;
Log::Any::Adapter->set('Log4perl');
Log::Log4perl::init('./log4perl.conf');
my $app = MyApp::View->new;
$app->something(); # will print debug and error messages
with log4perl.conf like:
log4perl.rootLogger=DEBUG,OUT
log4perl.appender.OUT=Log::Log4perl::Appender::Screen
log4perl.appender.OUT.stderr=1
log4perl.appender.OUT.utf8=1
log4perl.appender.OUT.layout=PatternLayout
log4perl.appender.OUT.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n
See Log::Log4perl for more configuration options and selecting which messages to log and which not.
DATAHUB FACTORY COMMAND LINE
When using the dhconveyor command line, the logger can be activated using the -D option on all Datahub Factory commands:
$ dhconveyor -D transport ...
METHODS
ACKNOWLEDGMENTS
Code and documentation blatantly stolen from Catmandu
who got it from MooX::Log::Any
.