ApacheLog-Compressor
view release on metacpan or search on metacpan
ExtUtils::MakeMaker: 6.30
dynamic_config: 0
generated_by: 'Dist::Zilla version 4.300009, CPAN::Meta::Converter version 2.120530'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: ApacheLog-Compressor
requires:
Date::Parse: 0
DateTime: 0
Encode: 0
List::Util: 0
Socket: 0
URI: 0
URI::Escape: 0
perl: 5.008
version: 0.005
Makefile.PL view on Meta::CPAN
"BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => "6.30"
},
"DISTNAME" => "ApacheLog-Compressor",
"EXE_FILES" => [],
"LICENSE" => "perl",
"NAME" => "ApacheLog::Compressor",
"PREREQ_PM" => {
"Date::Parse" => 0,
"DateTime" => 0,
"Encode" => 0,
"List::Util" => 0,
"Socket" => 0,
"URI" => 0,
"URI::Escape" => 0
},
"VERSION" => "0.005",
"test" => {
"TESTS" => "t/*.t"
}
[@Basic]
[Prereqs]
perl = 5.008
Socket = 0
Date::Parse = 0
List::Util = 0
URI = 0
URI::Escape = 0
DateTime = 0
Encode = 0
[Prereqs / TestRequires]
[ExtraTests]
; [CheckExtraTests]
[NextRelease]
[VersionFromModule]
[PodVersion]
lib/ApacheLog/Compressor.pm view on Meta::CPAN
package ApacheLog::Compressor;
# ABSTRACT: Convert Apache/CLF data to binary format
use strict;
use warnings;
use Socket qw(inet_aton inet_ntoa);
use Date::Parse qw(str2time);
use List::Util qw(min);
use URI;
use URI::Escape qw(uri_unescape);
use DateTime;
use Encode qw(encode_utf8 decode_utf8 FB_DEFAULT is_utf8 FB_CROAK);
use POSIX qw{strftime};
our $VERSION = '0.005';
=head1 NAME
ApacheLog::Compressor - convert Apache / CLF log files into a binary format for transfer
=head1 VERSION
lib/ApacheLog/Compressor.pm view on Meta::CPAN
sub data_hashref {
my $self = shift;
my $data = shift;
my %info = %$data;
$info{$_} = $self->from_cache($_, $info{$_}) for qw(vhost user url query useragent refer);
$info{server} = $self->{server};
undef $info{$_} for grep { $info{$_} eq '-' } qw(user refer size useragent);
undef $info{query} unless defined $info{query} && length $info{query};
#DateTime->from_epoch(epoch => $self->{timestamp})->strftime("%d/%b/%Y:%H:%M:%S %z");
$info{timestamp} = strftime("%d/%b/%Y:%H:%M:%S %z", gmtime($self->{timestamp}));
return \%info;
}
=head2 data_to_text
Internal method for converting the current log entry to a text string in
something approaching the 'standard' Apache log format (almost, but not quite,
CLF).
lib/ApacheLog/Compressor.pm view on Meta::CPAN
my $self = shift;
my $data = shift;
my $q = $self->from_cache('query', $data->{query});
$q = '' unless defined $q;
return join(' ',
$self->from_cache('vhost', $data->{vhost}),
$data->{duration},
$data->{ip},
'-',
$self->from_cache('user', $data->{user}),
'[' . DateTime->from_epoch(epoch => $self->{timestamp})->strftime("%d/%b/%Y:%H:%M:%S %z") . ']',
'"' . $data->{method} . ' ' . $self->from_cache('url', $data->{url}) . (length $q ? "?$q" : "") . ' HTTP/' . ($data->{ver} ? '1.1' : '1.0') . '"',
$data->{result},
$data->{size},
'"' . $self->from_cache('useragent', $data->{useragent}) . '"',
'"' . $self->from_cache('refer', $data->{refer}) . '"',
);
}
=head2 handle_server
( run in 0.426 second using v1.01-cache-2.11-cpan-05444aca049 )