forked from Mirrors/freeswitch
57 lines
1.0 KiB
Perl
Executable File
57 lines
1.0 KiB
Perl
Executable File
#!/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
|
|
}
|