A role for easy usage of logging in your moose based modules based on moosex::log::log4perl
package MyApp; use Moose; use Log::Log4perl qw(:easy); with 'MooseX::Log::Log4perl::Easy'; BEGIN { Log::Log4perl->easy_init(); } sub foo { my ($self) = @_; $self->log_debug("started bar"); ### logs with default class catergory "MyApp" $self->log_info('bar'); ### logs an info message $self->log('AlsoPossible')->fatal("croak"); ### log }
The Easy logging role based on the MooseX::Log::Log4perl logging role for Moose directly adds the logmethods for all available levels to your class instance. Hence it is possible to use
$self->log_info("blabla");
without having to access a separate log attribute as in MooseX::Log::Log4perl;
In case your app grows and you need more of the super-cow powers of Log4perl or simply don't want the additional methods to clutter up your class you can simply replace all code \*(C`$self->log_LEVEL\*(C' with \*(C`$self->log->LEVEL\*(C'.
You can use the following regex substitution to accomplish that:
s/log(_(trace|debug|info|warn|error|fatal))/log->$2/g
See MooseX::Log::Log4perl
See MooseX::Log::Log4perl
Logs a fatal message $msg using the logger attribute. Same as calling
$self->logger->fatal($msg)
Logs an error message using the logger attribute. Same as calling
$self->logger->error($msg)
Logs a warn message using the logger attribute. Same as calling
$self->logger->warn($msg)
Logs an info message using the logger attribute. Same as calling
$self->logger->info($msg)
Logs a debug message using the logger attribute. Same as calling
$self->logger->debug($msg)
Logs a trace message using the logger attribute. Same as calling
$self->logger->trace($msg)
MooseX::Log::Log4perl, Log::Log4perl, Moose
Please report any bugs or feature requests to \*(C`[email protected]\*(C', or through the web interface at <http://rt.cpan.org>.
Or come bother us in \*(C`#moose\*(C' on \*(C`irc.perl.org\*(C'.
Roland Lammel \*(C`<[email protected]>\*(C'
Inspired by suggestions by Michael Schilli \*(C`<[email protected]>\*(C'
Contributions from Tim Bunce \*(C`<[email protected]>\*(C'
Copyright (c) 2008-2012, Roland Lammel \*(C`<[email protected]>\*(C', http://www.quikit.at
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.