Apache-Log-Spread

 view release on metacpan or  search on metacpan

Spread.pm  view on Meta::CPAN

    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 )