From 952e34d4082e459c57d70c6db981dff87b2ca87d Mon Sep 17 00:00:00 2001 From: Maarten Vanraes Date: Thu, 5 May 2016 14:59:39 +0200 Subject: Module: automatically create a logging object --- lib/ManaTools/Module.pm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'lib/ManaTools/Module.pm') diff --git a/lib/ManaTools/Module.pm b/lib/ManaTools/Module.pm index b800d0b1..5bc8c064 100644 --- a/lib/ManaTools/Module.pm +++ b/lib/ManaTools/Module.pm @@ -155,6 +155,41 @@ has 'loc' => ( ); +#============================================================= + +=head2 logger + + logger attribute defines logging object that uses the loc attribute + and goes to Syslog. (see ManaTools::Shared::Logging for details). + You can use this attribute to log various messages: + + $log->D("debugstuff: %s", $somestring); + $log->I("infostuff: %s", $somestring); + $log->W("warnstuff: %s", $somestring); + $log->E("errorstuff: %s", $somestring); + + if you wish to trace (goes to STDERR): + + $log->trace(1); + +=cut + +#============================================================= +has 'logger' => ( + is => 'rw', + isa => 'ManaTools::Shared::Logging', + lazy => 1, + init_arg => undef, + required => 0, + default => sub { + my $self = shift; + # make sure to trigger loc & name first + return ManaTools::Shared::Logging->new(loc => $self->loc(), ident => $self->name()); + }, + handles => ['D','I','W','E'], +); + + #============================================================= =head2 commandline -- cgit v1.2.1