MooX::Log::Any − Role to add Log::Any
version 0.004004
A logging role building a very lightweight wrapper to Log::Any for use with your Moo or Moose classes. Connecting a Log::Any::Adapter should be performed prior to logging the first log message, otherwise nothing will happen, just like with Log::Any
Using the logger within a class is as simple as consuming a role:
package MyClass; use Moo; with 'MooX::Log::Any'; sub dummy { my $self = shift; $self−>log−>info("Dummy log entry"); }
The logger needs to be setup before using the logger, which could happen in the main application:
package main; use Log::Any::Adapter; # Send all logs to Log::Log4perl Log::Any::Adapter−>set('Log4perl') use MyClass; my $myclass = MyClass−>new(); $myclass−>log−>info("In my class"); # Access the log of the object $myclass−>dummy; # Will log "Dummy log entry"
package MyApp; use Moo; with 'MooX::Log::Any'; sub something { my ($self) = @_; $self−>log−>debug("started bar"); ### logs with default class catergory "MyApp" $self−>log−>error("started bar"); ### logs with default class catergory "MyApp" }
log
The "log" attribute holds the Log::Any::Adapter 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.
package MyApp::View::JSON; extends 'MyApp::View'; with 'MooseX:Log::Log4perl'; sub bar { $self−>logger−>info("Everything fine so far"); # logs a info message $self−>logger−>debug("Something is fishy here"); # logs a debug message }
logger([$category])
This is an alias for log.
Log::Any, Moose, Moo
Inspired by
Inspired by the work by Chris Prather "<perigrin AT cpan DOT org>" and Ash Berlin "<ash AT cpan DOT org>" on MooseX::LogDispatch and Roland Lammel "<lammel AT cpan DOT org>"
Please report any bugs or feature requests through github <https://github.com/cazador481/MooX−Log−Any>.
In alphabetical order:
Jens Rehsack "rehsack AT gmail DOT com>"
Edward Ash <eddie+cpan AT ashfamily DOT net>
This software is copyright (c) 2013 by Edward Ash.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.