From b289d8b09eb3417314578a77f49606dbdf5292bf Mon Sep 17 00:00:00 2001 From: Gabor X Toth <*@tg-x.net> Date: Thu, 10 Jul 2014 17:49:59 +0000 Subject: rename logread tools --- contrib/gnunet-logread | 111 ++++++++++++++++++++++++++++++++++++++ contrib/gnunet-logread-ipc | 7 +++ contrib/gnunet-logread-ipc-sdedit | 59 ++++++++++++++++++++ contrib/logread-ipc-sdedit.pl | 59 -------------------- contrib/logread-ipc.sh | 5 -- contrib/logread.pl | 111 -------------------------------------- 6 files changed, 177 insertions(+), 175 deletions(-) create mode 100755 contrib/gnunet-logread create mode 100755 contrib/gnunet-logread-ipc create mode 100755 contrib/gnunet-logread-ipc-sdedit delete mode 100755 contrib/logread-ipc-sdedit.pl delete mode 100755 contrib/logread-ipc.sh delete mode 100755 contrib/logread.pl (limited to 'contrib') diff --git a/contrib/gnunet-logread b/contrib/gnunet-logread new file mode 100755 index 000000000..773a5ff93 --- /dev/null +++ b/contrib/gnunet-logread @@ -0,0 +1,111 @@ +#!/usr/bin/env perl + +# Usage: +# gnunet-service |& gnunet-logread +# gnunet-logread service.log +# +# Options: +# -n Name of this component to use for IPC logging. +# -i Path to IPC logging socket. +# Passing on log messages to IPC socket: +# -L Minimum level of messages to pass on. +# Log levels: NONE, ERROR, WARNING, INFO, DEBUG. +# -m Only pass on messages matching a regular expression. + +use strict; +use warnings; + +use Getopt::Std; +use Term::ANSIColor qw(:constants :pushpop); +$Term::ANSIColor::AUTOLOCAL = 1; + +my (%opts, $name, $ipc, $msg_level, $msg_regex); +getopts ('n:i:L:m:', \%opts); + +# 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 (
) + { + $msgtypes{$2} = $1 if /^\s*#define\s+GNUNET_MESSAGE_TYPE_(\w+)\s+(\d+)/i; + } + close HEADER; +} +else +{ + warn "$filename: $!, try setting \$GNUNET_PREFIX"; +} + +my %levels = ( NONE => 0, ERROR => 1, WARNING => 2, INFO => 4, DEBUG => 8 ); +if (exists $opts{n}) +{ + $name = $opts{n}; + $ipc = $opts{i} || '/tmp/gnunet-logread-ipc.sock'; + $msg_level = exists $levels{$opts{L}} ? $levels{$opts{L}} : 0; + $msg_regex = $opts{m}; + print STDERR "RE: /$msg_regex/\n"; + open IPC, '>', $ipc or die "$ipc: $!\n"; +} + +while (<>) +{ + if (fileno IPC) { + my ($time, $type, $size, $from, $to, $level, $msg); + if (($time, $type, $size, $from, $to) = + /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?)\ util-.*\b + (?: Received | Transmitting )\ message \b.*?\b + type \s+ (\d+) \b.*?\b + size \s+ (\d+) \b.*?\b + (?: from \s+ (\S+) + | to \s+ (\S+) ) /x) + { + $from ||= $name; + $to ||= $name; + my ($time, $type, $size, $from, $to) = ($1, $2, $3, + $4 || $name, $5 || $name); + my $msg = exists $msgtypes{$type} ? $msgtypes{$type} : $type; + my $ofh = select IPC; + print IPC "$time\t$from -> $to\t$msg ($size)\n"; + $|++; + select $ofh; + } + if (($time, $level, $msg) = + /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?) + \s+\S+\s+(\S+)\s+(.+)/x + and (exists $levels{$level} + && $levels{$level} <= $msg_level + && (!defined $msg_regex || $msg =~ /$msg_regex/i))) + { + print IPC "$time\t$name\t$level: $msg\n"; + } + } + + # 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/gex; + + # Add message type names + s/(\s+type\s+)(\d+)/ + $1 . BRIGHT_CYAN (exists $msgtypes{$2} ? $msgtypes{$2} : 'UNKNOWN') . + CYAN " ($2)"/gei; + + # logread-ipc output + s/(\s+)([A-Z_]+)( \(\d+\))$/$1 . BRIGHT_CYAN $2 . CYAN $3/e; + + print; +} + +fileno IPC and close IPC; diff --git a/contrib/gnunet-logread-ipc b/contrib/gnunet-logread-ipc new file mode 100755 index 000000000..24de434c2 --- /dev/null +++ b/contrib/gnunet-logread-ipc @@ -0,0 +1,7 @@ +#!/bin/sh +# +# Usage: gnunet-logread-ipc | gnunet-logread + +ipc=${1:-/tmp/gnunet-logread-ipc.sock} +test -e "$ipc" || mkfifo "$ipc" +cat "$ipc" diff --git a/contrib/gnunet-logread-ipc-sdedit b/contrib/gnunet-logread-ipc-sdedit new file mode 100755 index 000000000..e482eee30 --- /dev/null +++ b/contrib/gnunet-logread-ipc-sdedit @@ -0,0 +1,59 @@ +#!/usr/bin/env perl + +# 1. Start sdedit and enable 'RT diagram server' in 'Global preferences'. +# +# 2. Start this tool (see defaults below): +# gnunet-logread-ipc-sdedit -n buffer-name -i /path/to/ipc.sock -h -p +# +# 3. Start a gnunet-logread instance for each component with the -n option + +use strict; +use warnings; + +use Getopt::Std; +use IO::Socket::INET; +use POSIX qw(mkfifo); + +my %opts; +getopts ('i:n:h:p:', \%opts); + +my $ipc = $opts{i} || '/tmp/gnunet-logread-ipc.sock'; +my $name = $opts{n} || 'gnunet'; +my $host = $opts{h} || 'localhost'; +my $port = $opts{p} || 16001; +my %svcs = map { $_ => 1 } @ARGV; + +my $sdedit = IO::Socket::INET->new(PeerAddr => $host, + PeerPort => $port, + Proto => 'tcp') + or die "Cannot connect to $host:$port: $!\n"; + +print $sdedit "$name\n"; +print $sdedit "_t:time[e]\n"; +print $sdedit "$_:$_\[ap\] \"$_\"\n" for @ARGV; +print $sdedit "_e:ext[e]\n"; +print $sdedit "\n"; + +mkfifo $ipc, 0600 or die "$ipc: $!\n" unless -e $ipc; +open IPC, '<', $ipc or die "$ipc: $!\n"; +while () +{ + print; + my ($time, $from, $to, $msg, $svc); + if (my ($time, $from, $to, $msg) = + /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?)\s+ + (\S+)\s+ -> \s+(\S+)\s+ (\S+\s+ \(\d+\))/x) + { + $from = '_e' unless exists $svcs{$from}; + $to = '_e' unless exists $svcs{$to}; + print $sdedit "*0 _t\n$time\n*0\n", "$from:$to.$msg\n" + } + elsif (($time, $svc, $msg) = + /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?)\s+ + (\S+)\s+(.+)/x) + { + print $sdedit "*0 _t\n$time\n*0\n", "*0 $svc\n$msg\n*0\n" + } +} + +close IPC; diff --git a/contrib/logread-ipc-sdedit.pl b/contrib/logread-ipc-sdedit.pl deleted file mode 100755 index e482eee30..000000000 --- a/contrib/logread-ipc-sdedit.pl +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env perl - -# 1. Start sdedit and enable 'RT diagram server' in 'Global preferences'. -# -# 2. Start this tool (see defaults below): -# gnunet-logread-ipc-sdedit -n buffer-name -i /path/to/ipc.sock -h -p -# -# 3. Start a gnunet-logread instance for each component with the -n option - -use strict; -use warnings; - -use Getopt::Std; -use IO::Socket::INET; -use POSIX qw(mkfifo); - -my %opts; -getopts ('i:n:h:p:', \%opts); - -my $ipc = $opts{i} || '/tmp/gnunet-logread-ipc.sock'; -my $name = $opts{n} || 'gnunet'; -my $host = $opts{h} || 'localhost'; -my $port = $opts{p} || 16001; -my %svcs = map { $_ => 1 } @ARGV; - -my $sdedit = IO::Socket::INET->new(PeerAddr => $host, - PeerPort => $port, - Proto => 'tcp') - or die "Cannot connect to $host:$port: $!\n"; - -print $sdedit "$name\n"; -print $sdedit "_t:time[e]\n"; -print $sdedit "$_:$_\[ap\] \"$_\"\n" for @ARGV; -print $sdedit "_e:ext[e]\n"; -print $sdedit "\n"; - -mkfifo $ipc, 0600 or die "$ipc: $!\n" unless -e $ipc; -open IPC, '<', $ipc or die "$ipc: $!\n"; -while () -{ - print; - my ($time, $from, $to, $msg, $svc); - if (my ($time, $from, $to, $msg) = - /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?)\s+ - (\S+)\s+ -> \s+(\S+)\s+ (\S+\s+ \(\d+\))/x) - { - $from = '_e' unless exists $svcs{$from}; - $to = '_e' unless exists $svcs{$to}; - print $sdedit "*0 _t\n$time\n*0\n", "$from:$to.$msg\n" - } - elsif (($time, $svc, $msg) = - /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?)\s+ - (\S+)\s+(.+)/x) - { - print $sdedit "*0 _t\n$time\n*0\n", "*0 $svc\n$msg\n*0\n" - } -} - -close IPC; diff --git a/contrib/logread-ipc.sh b/contrib/logread-ipc.sh deleted file mode 100755 index a986c629f..000000000 --- a/contrib/logread-ipc.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -ipc=${1:-/tmp/gnunet-logread-ipc.sock} -test -e "$ipc" || mkfifo "$ipc" -cat "$ipc" diff --git a/contrib/logread.pl b/contrib/logread.pl deleted file mode 100755 index 773a5ff93..000000000 --- a/contrib/logread.pl +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/env perl - -# Usage: -# gnunet-service |& gnunet-logread -# gnunet-logread service.log -# -# Options: -# -n Name of this component to use for IPC logging. -# -i Path to IPC logging socket. -# Passing on log messages to IPC socket: -# -L Minimum level of messages to pass on. -# Log levels: NONE, ERROR, WARNING, INFO, DEBUG. -# -m Only pass on messages matching a regular expression. - -use strict; -use warnings; - -use Getopt::Std; -use Term::ANSIColor qw(:constants :pushpop); -$Term::ANSIColor::AUTOLOCAL = 1; - -my (%opts, $name, $ipc, $msg_level, $msg_regex); -getopts ('n:i:L:m:', \%opts); - -# 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 (
) - { - $msgtypes{$2} = $1 if /^\s*#define\s+GNUNET_MESSAGE_TYPE_(\w+)\s+(\d+)/i; - } - close HEADER; -} -else -{ - warn "$filename: $!, try setting \$GNUNET_PREFIX"; -} - -my %levels = ( NONE => 0, ERROR => 1, WARNING => 2, INFO => 4, DEBUG => 8 ); -if (exists $opts{n}) -{ - $name = $opts{n}; - $ipc = $opts{i} || '/tmp/gnunet-logread-ipc.sock'; - $msg_level = exists $levels{$opts{L}} ? $levels{$opts{L}} : 0; - $msg_regex = $opts{m}; - print STDERR "RE: /$msg_regex/\n"; - open IPC, '>', $ipc or die "$ipc: $!\n"; -} - -while (<>) -{ - if (fileno IPC) { - my ($time, $type, $size, $from, $to, $level, $msg); - if (($time, $type, $size, $from, $to) = - /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?)\ util-.*\b - (?: Received | Transmitting )\ message \b.*?\b - type \s+ (\d+) \b.*?\b - size \s+ (\d+) \b.*?\b - (?: from \s+ (\S+) - | to \s+ (\S+) ) /x) - { - $from ||= $name; - $to ||= $name; - my ($time, $type, $size, $from, $to) = ($1, $2, $3, - $4 || $name, $5 || $name); - my $msg = exists $msgtypes{$type} ? $msgtypes{$type} : $type; - my $ofh = select IPC; - print IPC "$time\t$from -> $to\t$msg ($size)\n"; - $|++; - select $ofh; - } - if (($time, $level, $msg) = - /^([A-Z][a-z]{2}\ .[0-9]\ [0-9:]{8}(?:-[0-9]{6})?) - \s+\S+\s+(\S+)\s+(.+)/x - and (exists $levels{$level} - && $levels{$level} <= $msg_level - && (!defined $msg_regex || $msg =~ /$msg_regex/i))) - { - print IPC "$time\t$name\t$level: $msg\n"; - } - } - - # 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/gex; - - # Add message type names - s/(\s+type\s+)(\d+)/ - $1 . BRIGHT_CYAN (exists $msgtypes{$2} ? $msgtypes{$2} : 'UNKNOWN') . - CYAN " ($2)"/gei; - - # logread-ipc output - s/(\s+)([A-Z_]+)( \(\d+\))$/$1 . BRIGHT_CYAN $2 . CYAN $3/e; - - print; -} - -fileno IPC and close IPC; -- cgit v1.2.3