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.