]> git.donarmstrong.com Git - infobot.git/blobdiff - src/logger.pl
better logging from dondelelcaro
[infobot.git] / src / logger.pl
index 36400b3c0bcf24c70f8754779afc42c5208a405e..6220dcd623b2f0b1c57ab384f9789c50081e58e4 100644 (file)
@@ -112,13 +112,13 @@ sub openLog {
 
     if ( &IsParam('logType') and $param{'logType'} =~ /DAILY/i ) {
         my ( $day, $month, $year ) = ( gmtime time() )[ 3, 4, 5 ];
-        $logDate = sprintf('%04d/%02d%02d', $year + 1900, $month + 1, $day);
-        $file{log} .= $logDate;
-       my $logDir = $file{log} . sprintf('%04d', $year + 1900);
+        my $logDir = $file{log} . sprintf('%04d', $year + 1900);
         unless(-d $logDir) {
             &status("openLog: making $logDir.");
             mkdir $logDir, 0755 or &status("Cannot mkdir $logDir");;
         }
+        $logDate = sprintf('%04d/%02d%02d', $year + 1900, $month + 1, $day);
+        $file{log} .= $logDate;
     }
 
 
@@ -178,12 +178,16 @@ sub processLog {
 
 sub DEBUG {
     return unless ( &IsParam('DEBUG') );
+    my (undef,undef,$line,$subroutine,undef) = caller(1);
 
-    &status("${b_green}!DEBUG!$ob $_[0]");
+    &status("${b_green}!DEBUG!$ob ".$subroutine.'['.$line."] $_[0]");
 }
 
 sub ERROR {
-    &status("${b_red}!ERROR!$ob $_[0]");
+    return unless ( &IsParam('DEBUG') );
+    my (undef,undef,$line,$subroutine,undef) = caller(1);
+
+    &status("${b_red}!ERROR!$ob ".$subroutine.'['.$line."] $_[0]");
 }
 
 sub WARN {
@@ -191,15 +195,21 @@ sub WARN {
 
     return if ( $_[0] =~ /^PERL: Subroutine \S+ redefined at/ );
 
-    &status("${b_yellow}!WARN!$ob $_[0]");
+    my ($package,$filename,$line,$subroutine,undef) = caller(1);
+
+    &status("${b_yellow}!WARN!$ob ".$subroutine.'['.$line."] $_[0]");
 }
 
 sub FIXME {
-    &status("${b_cyan}!FIXME!$ob $_[0]");
+    my ($package,$filename,$line,$subroutine,undef) = caller(1);
+
+    &status("${b_cyan}!FIXME!$ob ".$subroutine.'['.$line."] $_[0]");
 }
 
 sub TODO {
-    &status("${b_cyan}!TODO!$ob $_[0]");
+    my ($package,$filename,$line,$subroutine,undef) = caller(1);
+
+    &status("${b_cyan}!TODO!$ob ".$subroutine.'['.$line."] $_[0]");
 }
 
 sub VERB {
@@ -409,7 +419,7 @@ sub status {
         my ( $day, $month, $year ) = ( gmtime $time )[ 3, 4, 5 ];
         my $newlogDate =
           sprintf( '%04d/%02d%02d', $year + 1900, $month + 1, $day );
-        if ( defined $logDate and $newlogDate != $logDate ) {
+        if ( defined $logDate and $newlogDate ne $logDate ) {
             &closeLog();
             &processLog( $file{log} );
             &openLog();