rendered paste body#!/usr/bin/env perl
while (<>) {
m/\s[A-Z]+\s+\[([^\]]+)\]\s/ || next;
$thread = $1;
if (m/\scollection failed for\s(\S+)/) {
$ip = $1;
printLastForThread($thread, $_);
} else {
pushThread($thread, $_);
}
}
sub printLastForThread {
my $thread = shift(@_);
my $line = shift(@_);
if (exists($thread{$thread})) {
print(@{$thread{$thread}});
}
print($line);
print("\n");
}
sub pushThread {
my $thread = shift(@_);
my $line = shift(@_);
if (exists($thread{$thread})) {
$size = scalar(@{$thread{$thread}});
if ($size > 4) {
splice(@{$thread{$thread}}, 0, $size - 4);
}
}
push(@{$thread{$thread}}, $line);
}