Skip to content

veryrusty/Log-Any-Plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Log::Any::Plugin - Adapter-modifying plugins for Log::Any

VERSION

version 0.001

SYNOPSIS

use Log::Any::Adapter;
use Log::Any::Plugin;

# Create your adapter as normal
Log::Any::Adapter->set( 'SomeAdapter' );

# Add plugin to modify its behaviour
Log::Any::Plugin->add( 'Stringify' );

# Multiple plugins may be used together
Log::Any::Plugin->add( 'Levels', level => 'debug' );

DESCRIPTION

Log::Any::Plugin is a method for augmenting arbitrary instances of Log::Any::Adapters.

Log::Any::Plugins work much in the same manner as Moose 'around' modifiers to augment logging behaviour of pre-existing adapters.

MOTIVATION

Many of the Log::Any::Adapters have extended functionality, such as being able to selectively disable various log levels, or to handle multiple arguments.

In order for Log::Any to be truly 'any', only the common subset of adapter functionality can be used. Any specific adapter functionality must be avoided if there is a possibility of using a different adapter at a later date.

Log::Any::Plugins provide a method to augment adapters with missing functionality so that a superset of adapter functionality can be used.

METHODS

add ( $plugin, [ %plugin_args ] )

This is the single method for adding plugins to adapters. It works in a similar function to Log::Any::Adapter->set()

  • $plugin

The plugin class to add to the currently active adapter. If the class is in the Log::Any::Plugin:: namespace, you can simply specify the name, otherwise prefix a '+'.

eg. '+My::Plugin::Class'
  • %plugin_args

These are plugin specific arguments. See the individual plugin documentation for what options are supported.

SEE ALSO

Log::Any, Log::Any::Plugin::Levels, Log::Any::Plugin::Stringify

ACKNOWLEDGEMENTS

Thanks to Strategic Data for sponsoring the development of this module.

AUTHOR

Stephen Thirlwall [email protected]

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Stephen Thirlwall.

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

Packages

No packages published

Languages

  • Perl 100.0%