#
# http://www.fabiankeil.de/sourcecode/privoxy-log-parser/
#
-# $Id: privoxy-log-parser.pl,v 1.134 2009/01/10 16:31:22 fk Exp $
+# $Id: privoxy-log-parser.pl,v 1.136 2009/03/14 14:50:52 fk Exp $
#
# TODO:
# - LOG_LEVEL_CGI, LOG_LEVEL_ERROR, LOG_LEVEL_WRITE content highlighting
# - Use generic highlighting function that takes a regex and the
# hash key as input.
#
-# Copyright (c) 2007-2008 Fabian Keil <fk@fabiankeil.de>
+# Copyright (c) 2007-2009 Fabian Keil <fk@fabiankeil.de>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
use Getopt::Long;
use constant {
- PRIVOXY_LOG_PARSER_VERSION => '0.4',
+ PRIVOXY_LOG_PARSER_VERSION => '0.5',
# Feel free to mess with these ...
DEFAULT_BACKGROUND => 'black', # Choose registered colour (like 'black')
DEFAULT_TEXT_COLOUR => 'white', # Choose registered colour (like 'black')
our %h;
our %reason_colours;
- # Blocked: ads.example.org/
-
# Highlight crunch reason
foreach my $reason (keys %reason_colours) {
$content =~ s@($reason)@$reason_colours{$reason}$1$h{'Standard'}@g;
}
- # Highlight request URL
- $content = highlight_matched_pattern($content, 'request_', '(?<= )[^ \[]*$');
if ($content =~ m/\[too long, truncated\]$/) {
# [...]&filter... [too long, truncated]
$content = highlight_matched_pattern($content, 'request_', '^.*(?=\.\.\. \[too long, truncated\]$)');
+ } else {
+
+ # Blocked: http://ads.example.org/
+ $content = highlight_matched_pattern($content, 'request_', '(?<=: ).*');
}
return $content;
# Method HEAD implies no body.
$c =~ s@(?<=Method )([^\s]+)@$h{'method'}$1$h{'Standard'}@;
+ } elsif ($c =~ m/^Buffer limit reached while extending /) {
+
+ # Buffer limit reached while extending the buffer (iob). Needed: 4197470. Limit: 4194304
+ $c =~ s@(?<=Needed: )(\d+)@$h{'Number'}$1$h{'Standard'}@;
+ $c =~ s@(?<=Limit: )(\d+)@$h{'Number'}$1$h{'Standard'}@;
+
} elsif ($c =~ m/^No logfile configured/ or
$c =~ m/^Malformerd HTTP headers detected and MS IIS5 hack enabled/ or
$c =~ m/^Invalid \"chunked\" transfer/ or
- $c =~ m/^Support for/
+ $c =~ m/^Support for/ or
+ $c =~ m/^Flushing header and buffers/
) {
# No logfile configured. Please enable it before reporting any problems.
# Invalid "chunked" transfer encoding detected and ignored.
# Support for 'Connection: keep-alive' is experimental, incomplete and\
# known not to work properly in some situations.
+ # Flushing header and buffers. Stepping back from filtering.
} else {
my $version_message;
$version_message .= 'Privoxy-Log-Parser ' . PRIVOXY_LOG_PARSER_VERSION . "\n";
- $version_message .= 'Copyright (C) 2007-2008 Fabian Keil <fk@fabiankeil.de>' . "\n";
+ $version_message .= 'Copyright (C) 2007-2009 Fabian Keil <fk@fabiankeil.de>' . "\n";
$version_message .= 'http://www.fabiankeil.de/sourcecode/privoxy-log-parser/' . "\n";
print $version_message;