blob: a72f7232d2cac5b7a412187dc8b4b6f667423c44 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#!/usr/bin/env perl
# Usage:
# gnunet-service |& gnunet-logread
# gnunet-logread service.log
use strict;
use warnings;
use Term::ANSIColor qw(:constants :pushpop);
$Term::ANSIColor::AUTOLOCAL = 1;
# Message type numbers to names
my %msgtypes;
my $prefix = $ENV{GNUNET_PREFIX} || '/usr';
my $filename = "$prefix/include/gnunet/gnunet_protocols.h";
if (open HEADER, $filename)
{
while (<HEADER>)
{
$msgtypes{$2} = $1 if /^\s*#define\s+GNUNET_MESSAGE_TYPE_(\w+)\s+(\d+)/i;
}
close HEADER;
}
else
{
warn "$filename: $!, try setting \$GNUNET_PREFIX";
}
while (<>)
{
# Timestamp (e.g. Nov 01 19:36:11-384136)
s/^([A-Z][a-z]{2} .[0-9] [0-9:]{8}(?:-[0-9]{6})?)/YELLOW $1/e;
# Log levels
s/\b(ERROR )\b/RED $1/ex;
s/\b(WARNING)\b/YELLOW $1/ex;
s/\b(INFO )\b/GREEN $1/ex;
s/\b(DEBUG )\b/BRIGHT_BLACK $1/ex;
# Service names
# TODO: might read the list from $GNUNET_PREFIX/libexec/gnunet/
s/\b(multicast|psyc|psycstore|social)\b/BLUE $1/ex;
# Add message type names
s/(message(?:\s+of)?\s+type\s+)(\d+)/
$1 . BRIGHT_CYAN (exists $msgtypes{$2} ? $msgtypes{$2} : 'UNKNOWN') .
CYAN " ($2)"/e;
print;
}
|