Apache-Log-Spread
view release on metacpan or search on metacpan
use vars qw( $VERSION $mailbox $private_group $iter);
$VERSION = '1.0.3';
if($ENV{MOD_PERL}) {
no strict;
@ISA = qw(DynaLoader);
__PACKAGE__->bootstrap($VERSION);
}
sub spconnect($)
{
my $daemon = shift;
my %args;
$args{'spread_name'} = $daemon;
$args{'private_name'} = "http-$PID";
$args{'priority'} = 0;
$args{'group_membership'} = 0;
return ($mailbox, $private_group) = Spread::connect( \%args );
}
sub handler($$)
{
my $self = shift;
$self = bless {}, $self;
my $apache_req = shift;
my %log_hash;
my $cfg = Apache::ModuleConfig->get($apache_req, 'Logger::Spread');
unless($mailbox) {
($mailbox, $private_group) = spconnect($cfg->{spreaddaemon});
}
standard_log_entries($apache_req, \%log_hash);
$hashref->{s} = $r->status;
$hashref->{'>s'} = $orig->status;
# [06/May/2002:23:56:56 -0400]
$hashref->{t} = POSIX::strftime('[%d/%b/%Y:%H:%M:%S %z]',localtime($orig->request_time));
$hashref->{u} = $r->connection->user?$r->connection->user:"-";
$hashref->{U} = $orig->uri;
$hashref->{v} = $r->hostname;
$hashref->{V} = $r->hostname;
}
sub MLS_LogFormat($$$$)
{
my ($cfg, $parms, $format, $name, $env) = @_;
$cfg->{logformat}->{$name}= $format;
}
sub MLS_Log($$$$;$)
{
my ($cfg, $parms, $fname, $format, $mask) = @_;
my $env;
eval "\$env = sub { my \$r = shift; $mask}";
push @{$cfg->{mls_logs}}, { name => $fname, format => $format, mask => $env};
}
sub SpreadDaemon($$$)
{
my ($cfg, $parms, $daemon) = @_;
$cfg->{spreaddaemon} = $daemon;
}
1;
__END__
=head1 NAME
package My::SpreadLogger;
use strict;
use Apache::Logger::Spread;
use My::Cookies;
use vars qw( @ISA);
@ISA = qw(Logger::Spread);
sub handler($$)
{
my $self = shift;
my $ar = shift;
Apache::Log::Spread::handler($self, $ar);
}
sub _interpolate_log_string {
my ($self, $logref) = @_;
my $cookie = My::Cookie->new();
$$logref =~ s/%\{([\w-]+)\}cookie/$cookie->{$1} || '-'/ego;
( run in 0.833 second using v1.01-cache-2.11-cpan-65fba6d93b7 )