NAME

MojoX::Log::Any - Use the current Log::Any adapter from Mojolicious

SYNOPSIS

use Mojolicious::Lite;

# Use Mojo::Log by default when importing
use MojoX::Log::Any;

# Or you can specify a different default adapter
use MojoX::Log::Any default_adapter => 'Stderr';

get '/' => sub {
  my $c = shift;

  app->log->debug('Using Log::Any::Adapter::MojoLog');

  # They can be redefined
  use Log::Any::Adapter;
  Log::Any::Adapter->set('Stderr');
  app->log->warning('Using Log::Any::Adapter::Stderr')
    if app->log->is_warning;

  # Or use whatever adapter you've set
  use Log::Log4perl qw(:easy);
  Log::Log4perl->easy_init($ERROR);

  Log::Any::Adapter->set('Log4perl');
  app->log->fatalf('Formatting with %s', 'Log::Any::Adapter::Log4perl');

  $c->render(text => 'OK!');
};

app->start;

DESCRIPTION

MojoX::Log::Any makes it easy to use a Log::Any::Adapter from within Mojolicious without getting in the way of the user.

When imported from within a Mojolicious application (of from within a package into which Mojolicious' app function has been exported), it sets that application's log attribute to a Log::Any::Proxy connected to whatever adapter is currently available.

When imported, the logger defaults to using Log::Any::Adapter::MojoLog, which seems to be the currently maintained adapter for Mojo::Log. Any parameters passed to the module's import function are passed as is to the get_logger function from Log::Any, to allow for user customisation and to maintain a coherent interface with that package.

MOTIVATION

There are numerous packages in the "MojoX::Log" namespace providing an interface with the various different logging mechanisms on CPAN; except Log::Any.

There is also a Log::Any adapter for Mojo::Log, which makes it possible to use that logger from any application using Log::Any; but not Mojolicious apps.

This package attempts to fill that void by offering Mojolicious applications an easy way to plug into the current Log::Any::Adapter (whatever it may be).

SEE ALSO

AUTHOR

  • José Joaquín Atria <jjatria@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by José Joaquín Atria.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.