X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Flogger.pl;h=2a5d1d32927cc8af01ef52364f8e854453d9abda;hb=refs%2Fheads%2Fdpkg;hp=e23e69d380d6fe65b00ec177b635b0ef2d27fe60;hpb=03478f0664f01a1ec050fd147ee8384f926b148a;p=infobot.git diff --git a/src/logger.pl b/src/logger.pl index e23e69d..2a5d1d3 100644 --- a/src/logger.pl +++ b/src/logger.pl @@ -7,6 +7,7 @@ # use strict; +use utf8; use vars qw($statcount $bot_pid $forkedtime $statcountfix $addressed); use vars qw($logDate $logold $logcount $logtime $logrepeat $running); @@ -91,6 +92,7 @@ sub cl { # logging support. sub openLog { + binmode( STDOUT, ':encoding(UTF-8)' ); return unless ( &IsParam('logfile') ); $file{log} = $param{'logfile'}; @@ -168,39 +170,34 @@ sub compress { return 1; } +sub __output { + my ($color,$what,$message) = @_; + my (undef,undef,$line,$subroutine,undef) = caller(2); + use String::Escape qw(); + status("$color!$what!$ob ".$subroutine.'['.$line.'] '.String::Escape::backslash($message)); +} + sub DEBUG { return unless ( &IsParam('DEBUG') ); - my (undef,undef,$line,$subroutine,undef) = caller(0); - - &status("${b_green}!DEBUG!$ob ".$subroutine.'['.$line."] $_[0]"); + __output($b_green,'DEBUG',$_[0]); } sub ERROR { - my (undef,undef,$line,$subroutine,undef) = caller(0); - - &status("${b_red}!ERROR!$ob ".$subroutine.'['.$line."] $_[0]"); + __output($b_red,'ERROR',$_[0]); } sub WARN { return unless ( &IsParam('WARN') ); - return if ( $_[0] =~ /^PERL: Subroutine \S+ redefined at/ ); - - my ($package,$filename,$line,$subroutine,undef) = caller(0); - - &status("${b_yellow}!WARN!$ob ".$subroutine.'['.$line."] $_[0]"); + __output($b_yellow,'WARN',$_[0]); } sub FIXME { - my ($package,$filename,$line,$subroutine,undef) = caller(0); - - &status("${b_cyan}!FIXME!$ob ".$subroutine.'['.$line."] $_[0]"); + __output($b_cyan,'FIXME',$_[0]); } sub TODO { - my ($package,$filename,$line,$subroutine,undef) = caller(0); - - &status("${b_cyan}!TODO!$ob ".$subroutine.'['.$line."] $_[0]"); + __output($b_cyan,'TODO',$_[0]); } sub VERB {