-#!/usr/bin/perl
+#!/usr/bin/env perl
+
+# Copyright (c) 2005-2018. The SimGrid Team.
+# All rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the license (GNU LGPL) which comes with this package.
$col_white = "\033[00m";
$col_black = "\033[30m";
$col_blink = "\033[05m";
# Customize colors here...
-#
$col_default = $col_ltgray;
my (@coltab) = (
$col_green, $col_yellow,
my %pid;
# Get options
-#
while (($_ = $ARGV[0]) =~ /^-/) {
shift;
if (/-location/i) {
return $coltab[$pid{$pid}];
}
+sub print_line {
+ my($host,$procname,$pid,$date,$location,$xbt_channel,$message)=@_;
+
+ print $col_norm;
+ printf "[% 10.6f]",$date;
+
+ print pidcolor($pid);
+
+ if(defined($location)) {
+ printf "[%10s:%-10s] %s ",$host,$procname,$location;
+ } else {
+ printf "[%10s:%-10s]",$host,$procname;
+ }
+ print " $message";
+ print $col_norm."\n";
+}
+
# Read the messages and do the job
while (<>) {
$orgline = $thisline = $_;
- if ( $thisline =~ /^\[([^:]+):([^:]+):\((\d+)\) ([\d\.]*)\] ([^\[]*) \[([^\[]*)\] (.*)$/ ) {
+ # Typical line [Gatien:slave:(9) 11.243148] msg/gos.c:137: [msg_gos/DEBUG] Action terminated
+ if ($thisline =~ /^\[(.+):([^:]+):\((\d+)\) ([\d\.]*)\] ([^\[]*) \[([^\[]*)\] (.*)$/) {
$host=$1;
$procname=$2;
$pid=$3;
$date=$4;
- $location=$5;
- $xbt_channel=$6;
- $message=$7;
-
- $location =~ s/:$//;
-
- print $col_norm;
- printf "[% 10.3f]",$date;
-
- print pidcolor($pid);
if($opt_print_location) {
- printf "[%10s:%-10s %s ]",$host,$procname,$location;
+ $location=$5;
+ $location =~ s/:$//;
} else {
- printf "[%10s:%-10s]",$host,$procname;
+ $location = undef;
}
- print " $message";
- print $col_norm."\n";
+ $xbt_channel=$6;
+ $message=$7;
+
+ print_line($host,$procname,$pid,$date,$location,$xbt_channel,$message);
+ # Typical line [Boivin:slave:(2) 9.269357] [pmm/INFO] ROW: step(2)<>myrow(0). Receive data from TeX
+ } elsif ($thisline =~ /^\[([^:]+):([^:]+):\((\d+)\) ([\d\.]*)\] \[([^\[]*)\] (.*)$/) {
+ $host=$1;
+ $procname=$2;
+ $pid=$3;
+ $date=$4;
+ $xbt_channel=$5;
+ $message=$6;
+ print_line($host,$procname,$pid,$date,undef,$xbt_channel,$message);
} elsif ( $thisline =~ /^==(\d+)== (.*)$/) {
# take care of valgrind outputs
print pidcolor($1)."$2\n";