NAME
Mojolicious::Plugin::Log::Any - Use other loggers in a Mojolicious application
SYNOPSIS
package MyApp;
use Mojo::Base 'Mojolicious';
sub startup {
my $self = shift;
# Log::Any (default)
use Log::Any::Adapter {category => 'MyApp'}, 'Syslog';
$self->plugin('Log::Any');
# Log::Contextual
use Log::Contextual::WarnLogger;
use Log::Contextual -logger => Log::Contextual::WarnLogger->new({env_prefix => 'MYAPP'});
$self->plugin('Log::Any' => {logger => 'Log::Contextual});
# Log::Dispatch
use Log::Dispatch;
my $logger = Log::Dispatch->new(outputs => ['File::Locked',
min_level => 'warning',
filename => '/path/to/file.log',
mode => 'append',
newline => 1,
callbacks => sub { my %p = @_; '[' . localtime() . '] ' . $p{message} },
]);
$self->plugin('Log::Any' => {logger => $logger});
# Log::Dispatchouli
use Log::Dispatchouli;
my $logger = Log::Dispatchouli->new({ident => 'MyApp', facility => 'daemon', to_file => 1});
$self->plugin('Log::Any' => {logger => $logger});
# Log::Log4perl
use Log::Log4perl;
Log::Log4perl->init($self->home->child('log.conf'));
$self->plugin('Log::Any' => {logger => 'Log::Log4perl'});
}
# or in a Mojolicious::Lite app
use Mojolicious::Lite;
use Log::Any::Adapter {category => 'Mojolicious::Lite'}, File => app->home->child('myapp.log'), log_level => 'info';
plugin 'Log::Any';
DESCRIPTION
Mojolicious::Plugin::Log::Any is a Mojolicious plugin that redirects the application logger to pass its log messages to an external logging framework using "attach_logger" in Mojo::Log::Role::AttachLogger. By default, Log::Any is used, but a different framework or object may be specified. For Log::Any or Log::Log4perl, log messages are dispatched with a category of the application class name, which is Mojolicious::Lite
for lite applications.
The default behavior of the Mojo::Log object to filter messages by level, keep history, prepend a timestamp, and write log messages to a file or STDERR will be suppressed. It is expected that the logging framework output handler will be configured to handle these details as necessary.
METHODS
Mojolicious::Plugin::Log::Any inherits all methods from Mojolicious::Plugin and implements the following new ones.
register
$plugin->register(Mojolicious->new);
$plugin->register(Mojolicious->new, {logger => $logger});
Register logger in Mojolicious application. Takes the following options:
- logger
-
Logging framework or object to pass log messages to, of a type recognized by "attach_logger" in Mojo::Log::Role::AttachLogger. Defaults to
Log::Any
.
BUGS
Report any issues on the public bugtracker.
AUTHOR
Dan Book <dbook@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by Dan Book.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)