NAME
Log::Any::Plugin::Levels - Logging-level filtering plugin for log adapters
VERSION
version 0.012
SYNOPSIS
# Set up some kind of logger.
use Log::Any::Adapter;
Log::Any::Adapter->set('SomeAdapter');
# Apply the Levels plugin to your logger
use Log::Any::Plugin;
Log::Any::Plugin->add('Levels', level => 'debug');
# In your modules
use Log::Any qw($log);
$log->trace('trace'); # this log is ignored
$log->error('error'); # this log gets through
$log->level('trace');
$log->trace('trace'); # this gets through now
DESCRIPTION
Log::Any leaves the decision of which log levels to ignore and which to actually log down to the individual adapters. Many adapters simply log everything.
Log::Any::Plugin::Levels allows you to add level filtering functionality into any adapter. Logs lower than $log->level are ignored.
The $log->is_debug family of functions are modified to reflect this level.
CONFIGURATION
Configuration values are passed as key-value pairs when adding the plugin: Log::Any::Plugin->add('Levels', level => 'debug', accessor => 'my_level');
level => $default_level
The global log level, which defaults to 'warning'. See the level method below for a discussion on how this is applied.
accessor => $accessor_name
This is the name of the $log->level accessor function.
The default value is 'level'. This can be changed to avoid any name clashes that may occur. An exception will be thrown in the case of a name clash.
METHODS
There are no methods in this package which should be directly called by the user. Use Log::Any::Plugin->add() instead.
install
Private method called by Log::Any::Plugin->add()
ADAPTER METHODS
The following methods are injected into the adapter class.
level( [ $log_level ] )
Accessor for the current log level in the calling $log object.
All $log objects start with the default level specified when adding the plugin. Individual $log objects can set a custom level with this accessor.
To reset to the default log level, specify 'default'.
SEE ALSO
ACKNOWLEDGEMENTS
Thanks to Strategic Data for sponsoring the development of this module.
AUTHOR
Stephen Thirlwall <sdt@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2022, 2019, 2017, 2015, 2014 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.