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/ApacheLog.pm | |
download | Log-Dispatch-tarball-master.tar.gz |
Log-Dispatch-2.45HEADLog-Dispatch-2.45master
Diffstat (limited to 'lib/Log/Dispatch/ApacheLog.pm')
-rw-r--r-- | lib/Log/Dispatch/ApacheLog.pm | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/lib/Log/Dispatch/ApacheLog.pm b/lib/Log/Dispatch/ApacheLog.pm new file mode 100644 index 0000000..4c5ccb9 --- /dev/null +++ b/lib/Log/Dispatch/ApacheLog.pm @@ -0,0 +1,115 @@ +package Log::Dispatch::ApacheLog; + +use strict; +use warnings; + +our $VERSION = '2.45'; + +use Log::Dispatch::Output; + +use base qw( Log::Dispatch::Output ); + +use Params::Validate qw(validate); +Params::Validate::validation_options( allow_extra => 1 ); + +BEGIN { + if ( $ENV{MOD_PERL} && $ENV{MOD_PERL} =~ /2\./ ) { + require Apache2::Log; + } + else { + require Apache::Log; + } +} + +sub new { + my $proto = shift; + my $class = ref $proto || $proto; + + my %p = validate( @_, { apache => { can => 'log' } } ); + + my $self = bless {}, $class; + + $self->_basic_init(%p); + $self->{apache_log} = $p{apache}->log; + + return $self; +} + +{ + my %methods = ( + emergency => 'emerg', + critical => 'crit', + warning => 'warn', + ); + + sub log_message { + my $self = shift; + my %p = @_; + + my $level = $self->_level_as_name( $p{level} ); + + my $method = $methods{$level} || $level; + + $self->{apache_log}->$method( $p{message} ); + } +} + +1; + +# ABSTRACT: Object for logging to Apache::Log objects + +__END__ + +=pod + +=head1 NAME + +Log::Dispatch::ApacheLog - Object for logging to Apache::Log objects + +=head1 VERSION + +version 2.45 + +=head1 SYNOPSIS + + use Log::Dispatch; + + my $log = Log::Dispatch->new( + outputs => [ + [ 'ApacheLog', apache => $r ], + ], + ); + + $log->emerg('Kaboom'); + +=head1 DESCRIPTION + +This module allows you to pass messages to Apache's log object, +represented by the L<Apache::Log> class. + +=head1 CONSTRUCTOR + +The constructor takes the following parameters in addition to the standard +parameters documented in L<Log::Dispatch::Output>: + +=over 4 + +=item * apache ($) + +An object of either the L<Apache> or L<Apache::Server> classes. Required. + +=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 |