forked from Mirrors/freeswitch
57 lines
1.0 KiB
Plaintext
57 lines
1.0 KiB
Plaintext
|
#!/usr/bin/perl
|
||
|
#
|
||
|
# fslog
|
||
|
#
|
||
|
# colorizes output according to FS console log colors
|
||
|
#
|
||
|
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
use Term::ANSIColor qw(:constants);;
|
||
|
$|++;
|
||
|
|
||
|
if ( $ARGV[0] && $ARGV[0] =~ m/--?h/i ) {
|
||
|
&usage;
|
||
|
exit(0);
|
||
|
} elsif ( $ARGV[0] && ! -f $ARGV[0] ) {
|
||
|
die "File not found: $ARGV[0]\n";
|
||
|
}
|
||
|
|
||
|
my $color_map = {
|
||
|
'[DEBUG]' => YELLOW,
|
||
|
'[INFO]' => GREEN,
|
||
|
'[NOTICE]' => CYAN,
|
||
|
'[WARNING]' => MAGENTA,
|
||
|
'[ERR]' => RED,
|
||
|
'[CRIT]' => RED,
|
||
|
'[ALERT]' => RED,
|
||
|
};
|
||
|
|
||
|
$SIG{INT} = sub { print RESET; };
|
||
|
|
||
|
while(<>) {
|
||
|
#print "Current line is: '$_'\n";
|
||
|
if ( m/(\[(DEBUG|INFO|NOTICE|WARNING|ERR|CRIT|ALERT)\])/ ) {
|
||
|
print $color_map->{"$1"},$_,RESET;
|
||
|
} else {
|
||
|
print YELLOW,$_,RESET;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
print RESET;
|
||
|
|
||
|
sub usage {
|
||
|
print <<EOT
|
||
|
|
||
|
fslog reader
|
||
|
|
||
|
Feed me a FreeSWITCH log file and I will colorize the output
|
||
|
fslog freeswitch.log
|
||
|
-OR-
|
||
|
grep foo freeswitch.log | fslog | more
|
||
|
|
||
|
NOTE: some versions of more and less do not support colorized text.
|
||
|
|
||
|
EOT
|
||
|
}
|