diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-14 16:34:55 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-14 16:34:55 +0000 |
commit | 2e0d2bec52bd345ef05ea12ea9052643ef135029 (patch) | |
tree | d128cd9759bc672fa01bac1561911aa8a895981b /lib/Log/Dispatch/Code.pm | |
download | Log-Dispatch-tarball-master.tar.gz |
Log-Dispatch-2.45HEADLog-Dispatch-2.45master
Diffstat (limited to 'lib/Log/Dispatch/Code.pm')
-rw-r--r-- | lib/Log/Dispatch/Code.pm | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/lib/Log/Dispatch/Code.pm b/lib/Log/Dispatch/Code.pm new file mode 100644 index 0000000..e06bbfd --- /dev/null +++ b/lib/Log/Dispatch/Code.pm @@ -0,0 +1,122 @@ +package Log::Dispatch::Code; + +use strict; +use warnings; + +our $VERSION = '2.45'; + +use Log::Dispatch::Output; + +use base qw( Log::Dispatch::Output ); + +use Params::Validate qw(validate CODEREF); +Params::Validate::validation_options( allow_extra => 1 ); + +sub new { + my $proto = shift; + my $class = ref $proto || $proto; + + my %p = validate( @_, { code => CODEREF } ); + + my $self = bless {}, $class; + + $self->_basic_init(%p); + $self->{code} = $p{code}; + + return $self; +} + +sub log_message { + my $self = shift; + my %p = @_; + + delete $p{name}; + + $self->{code}->(%p); +} + +1; + +# ABSTRACT: Object for logging to a subroutine reference + +__END__ + +=pod + +=head1 NAME + +Log::Dispatch::Code - Object for logging to a subroutine reference + +=head1 VERSION + +version 2.45 + +=head1 SYNOPSIS + + use Log::Dispatch; + + my $log = Log::Dispatch->new( + outputs => [ + [ + 'Code', + min_level => 'emerg', + code => \&_log_it, + ], + ] + ); + + sub _log_it { + my %p = @_; + + warn $p{message}; + } + +=head1 DESCRIPTION + +This module supplies a simple object for logging to a subroutine reference. + +=for Pod::Coverage new log_message + +=head1 CONSTRUCTOR + +The constructor takes the following parameters in addition to the standard +parameters documented in L<Log::Dispatch::Output>: + +=over 4 + +=item * code ($) + +The subroutine reference. + +=back + +=head1 HOW IT WORKS + +The subroutine you provide will be called with a hash of named arguments. The +two arguments are: + +=over 4 + +=item * level + +The log level of the message. This will be a string like "info" or "error". + +=item * message + +The message being logged. + +=back + +=head1 AUTHOR + +Dave Rolsky <autarch@urth.org> + +=head1 COPYRIGHT AND LICENSE + +This software is Copyright (c) 2015 by Dave Rolsky. + +This is free software, licensed under: + + The Artistic License 2.0 (GPL Compatible) + +=cut |