MooseX::Log::Log4perl - A Logging Role for Moose based on Log::Log4perl
This document describes MooseX::Log::Log4perl version 0.2.1
package MyApp; use Moose; use Log::Log4perl qw(:easy); with 'MooseX::Log::Log4perl'; BEGIN { Log::Log4perl->easy_init(); } sub foo { my ($self) = @_; $self->log->debug("started bar"); ### logs with default class catergory "MyApp" ... $self->log('special')->info('bar'); ### logs with category special }
A logging role building a very lightweight wrapper to Log::Log4perl for use with your Moose classes. The initialization of the Log4perl instance must be performed prior to logging the first log message. Otherwise the default initialization will happen, probably not doing the things you expect.
For compatibility the logger attribute can be accessed to use a common interface for application logging.
logger
For simple logging needs use MooseX::Log::Log4perl::Easy to directly add log_<level> methods to your class instance.
$self->log_info("Dummy");
The logger attribute holds the Log::Log4perl object that implements all logging methods for the defined log levels, such as debug or error. As this method is defined also in other logging roles/systems like MooseX::Log::LogDispatch this can be thought of as a common logging interface.
debug
error
package MyApp::View::JSON; extends 'MyApp::View'; with 'MooseX:Log::Log4perl'; sub bar { $self->logger->debug("Something could be crappy here"); # logs a debug message $self->logger->debug("Something could be crappy here"); # logs a debug message }
A shorter alias for logger, but also allowing to change the log category this method call.
if ($myapp->log->is_debug()) { $myapp->log->debug("Woot"); # category is class myapp } $myapp->log("TempCat")->info("Foobar"); # category TempCat $myapp->log->info("Grumble"); # category class again myapp
Log::Log4perl, Moose, MooseX::LogDispatch
Please report any bugs or feature requests to bug-moosex-log4perl@rt.cpan.org, or through the web interface at http://rt.cpan.org.
bug-moosex-log4perl@rt.cpan.org
Or come bother us in #moose on irc.perl.org.
#moose
irc.perl.org
Roland Lammel <lammel@cpan.org>
<lammel@cpan.org>
Inspired by the work by Chris Prather <perigrin@cpan.org> and Ash Berlin <ash@cpan.org> on MooseX::LogDispatch
<perigrin@cpan.org>
<ash@cpan.org>
Thanks to Michael Schilli <m@perlmeister.com> for Log::Log4perl and suggestions in the interface.
<m@perlmeister.com>
Copyright (c) 2008, Roland Lammel <lammel@cpan.org>. Some rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
To install MooseX::Log::Log4perl, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooseX::Log::Log4perl
CPAN shell
perl -MCPAN -e shell install MooseX::Log::Log4perl
For more information on module installation, please visit the detailed CPAN module installation guide.