Skip to content

Instantly share code, notes, and snippets.

@wittyfool
Created November 9, 2012 06:55
Show Gist options
  • Save wittyfool/4044133 to your computer and use it in GitHub Desktop.
Save wittyfool/4044133 to your computer and use it in GitHub Desktop.
apacheLog display tool
#!/usr/bin/perl -s
open(FP, '/var/log/httpd/access_log') || die;
while(<FP>){
$skip = 0;
s/[\r\n]+$//;
@fld = split(/\s+/, $_);
@fld2 = ();
for $f (@fld){
if($f =~ /\]$/ && $fld2[$#fld2] =~ /^\[/){
$fld2[$#fld2] .= $f;
} elsif($f =~ /^\"\S*\"$/){
push(@fld2, $f);
} elsif($f =~ /^\"/){
$begin = 1;
push(@fld2, $f);
} elsif($f =~ /\"$/){
$fld2[$#fld2] .= ' '.$f;
$begin = 0;
} elsif($begin){
$fld2[$#fld2] .= ' '.$f;
} else {
push(@fld2, $f);
}
}
if($user && $fld2[2] ne $user){
$skip = 1;
}
if($res && $fld2[5] ne $res){
# skip
#print "#$fld2[5]# #$res#\n";
$skip = 1;
}
unless($skip){
print join(" | ", @fld2);
print "\n";
}
# print $_;
}
close(FP);
[
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment