Apache-Log-Spread
view release on metacpan or search on metacpan
unless($mailbox) {
($mailbox, $private_group) = spconnect($cfg->{spreaddaemon});
}
standard_log_entries($apache_req, \%log_hash);
# handle variable expansion
foreach my $log (@{$cfg->{mls_logs}}) {
if ($log->{mask} && !$log->{mask}->($apache_req)) {
next;
}
my $log_string = $cfg->{logformat}->{$log->{format}};
# expand 'standard' LogFormat strings and custom Taubman entries
$log_string =~ s/%([\w<>]+)/$log_hash{$1}/g;
# expand Environment variables
$log_string =~ s/%\{([\w-]+)\}e\b/$ENV{$1}/g;
# expand request headers
$log_string =~ s/%\{([\w-]+)\}i\b/$apache_req->header_in($1)/eg;
# expand response headers
$log_string =~ s/%\{([\w-]+)\}o\b/$apache_req->header_out($1)/eg;
# expand arbitrary variables
$log_string =~ s/%\{([\w-]+)\}v\b/$$1/g;
$log_string =~ s/%\{([^\}]+)\}perl\b/eval($1)/eg;
# handle proprietary extensions
_interpolate_log_string(\$log_string);
Spread::multicast($mailbox,
AGREED_MESS,
$log->{name},
1,
$log_string);
}
( run in 1.329 second using v1.01-cache-2.11-cpan-5623c5533a1 )