>>107026042
#!/usr/bin/env perl
use strict;
use warnings;

my $log_rx = qr/\[(\d{2}\/[a-zA-Z]{3,4}\/\d{4}):([^ ]+) [+-]\d{4}\] ([A-Z]+) ([^ ]+) HTTP.*?status=(\d{3}).*?forwarded_for="([\d.]+)(?:,.*?)?".*?req_duration_s=([\d.]+)/;

my $filter_rx = qr/(?:hooks:|\/static\/|\[INFO\]|\/media\/|favicon\.ico)/;

my $uuid_rx = qr/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/;

sub normalize_url{
my ($url) = @_;

$url =~ s/\?next=//;
$url =~ s/$uuid_rx/{UUID}/;
$url =~ s/\d+(?=\/|$)/{ID}/;
$url =~ s/\?.*/{PARAMS}/;
return($url);
}

sub process_fwf{
my ($fwf) = @_;
return shift @{[split(/,/,$fwf)]};
}

while (<>) {
/$filter_rx/ and next;

chomp;

/$log_rx/ or next;
print join("\t", $1, $2, $3, normalize_url($4),$5, $6, $7), "\n";
}