1. added $actiondata to filter line to allow per action data such as no of hops
[spider.git] / perl / DXDebug.pm
index 611df54775060f011de4ee0423c853d7126bc1c7..64ed843944d7d478c4466f541933e75bca0af418 100644 (file)
@@ -25,18 +25,29 @@ use Carp;
 %dbglevel = ();
 $fp = DXLog::new('debug', 'dat', 'd');
 
-no strict 'refs';
+# add sig{__DIE__} handling
+if (!defined $DB::VERSION) {
+       $SIG{__WARN__} = $SIG{__DIE__} = sub { 
+               my $t = time; 
+               for (@_) {
+                       $fp->writeunix($t, "$t^$_"); 
+#                      print STDERR $_;
+               }
+       };
+}
 
 sub dbg
 {
        my $l = shift;
        if ($dbglevel{$l}) {
-               for (@_) {
-                       s/\n$//og;
+           my @in = @_;
+               my $t = time;
+               for (@in) {
+                   s/\n$//o;
+                       s/\a//og;   # beeps
+                       print "$_\n" if defined \*STDOUT;
+                       $fp->writeunix($t, "$t^$_");
                }
-               my $str = atime . "@_" ;
-               print "$str\n";
-               $fp->writenow($str);
        }
 }
 
@@ -54,7 +65,7 @@ sub dbgsub
        my $entry;
        
        foreach $entry (@_) {
-               delete $dbglevel{entry};
+               delete $dbglevel{$entry};
        }
 }
 
@@ -65,7 +76,8 @@ sub dbglist
 
 sub isdbg
 {
-       return $dbglevel{shift};
+       my $s = shift;
+       return $dbglevel{$s};
 }
 1;
 __END__