1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
package Log::Dispatch::ApacheLog;
use strict;
use warnings;
our $VERSION = '2.71';
use Log::Dispatch::Types;
use Params::ValidationCompiler qw( validation_for );
BEGIN {
if ( $ENV{MOD_PERL} && $ENV{MOD_PERL} =~ /2\./ ) {
require Apache2::Log;
}
else {
require Apache::Log;
}
}
use base qw( Log::Dispatch::Output );
{
my $validator = validation_for(
params => { apache => { type => t('ApacheLog') } },
slurpy => 1,
);
sub new {
my $class = shift;
my %p = $validator->(@_);
my $self = bless { apache_log => ( delete $p{apache} )->log }, $class;
$self->_basic_init(%p);
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
=encoding UTF-8
=head1 NAME
Log::Dispatch::ApacheLog - Object for logging to Apache::Log objects
=head1 VERSION
version 2.71
=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 SUPPORT
Bugs may be submitted at L<https://github.com/houseabsolute/Log-Dispatch/issues>.
=head1 SOURCE
The source code repository for Log-Dispatch can be found at L<https://github.com/houseabsolute/Log-Dispatch>.
=head1 AUTHOR
Dave Rolsky <autarch@urth.org>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The full text of the license can be found in the
F<LICENSE> file included with this distribution.
=cut
|