Allow synonyms for localhost
[spider.git] / perl / DXDebug.pm
index 28ae8fe56281137a056bac41954fa6013c1f8481..c2e5f28f1adb81a009f087a067e26f1f0b22debb 100644 (file)
@@ -28,7 +28,7 @@ use 5.10.1;
 
 require Exporter;
 @ISA = qw(Exporter);
-@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose dbgtrace confess croak cluck carp);
+@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose dbgtrace dbgprintring confess croak cluck carp);
 
 use strict;
 use vars qw(%dbglevel $fp $callback $cleandays $keepdays $dbgringlth);
@@ -104,7 +104,7 @@ sub dbgtrace
                last if $pkg =~ /Mojo/;
 #              say "*** in dbgtrace $i after mojo";
                $_isdbg = 'trace';
-               dbg("Stack ($i): $pkg::$subr in $fn line: $l");
+               dbg("Stack ($i): ${pkg}::$subr in $fn line: $l");
        }
        $_isdbg = '';
 }
@@ -119,8 +119,8 @@ sub dbg
                my @l = split /\n/, $r;
                foreach my $l (@l) {
                        $l =~ s/([\x00-\x08\x0B-\x1f\x7f-\xff])/sprintf("%%%02X",ord($1))/eg;
-                       print "$l\n" if defined \*STDOUT && !$no_stdout;
                        my $tag = $_isdbg ? "($_isdbg) " : '(*) ';
+                       print "$tag$l\n" if defined \*STDOUT && !$no_stdout;
                        my $str = "$t^$tag$l";
                        &$callback($str) if $callback;
                        if ($dbgringlth) {
@@ -130,10 +130,12 @@ sub dbg
                        $fp->writeunix($t, $str) unless !$fp || $dbglevel{"nolog$_isdbg"} ; 
                }
        }
+       $_isdbg = '';
 }
 
 sub dbginit
 {
+       my $basename = shift || 'debug';
        $callback = shift;
        
        # add sig{__DIE__} handling
@@ -160,7 +162,7 @@ sub dbginit
                }
        }
 
-       $fp = DXLog::new('debug', 'dat', 'd');
+       $fp = DXLog::new($basename, 'dat', 'd');
        dbgclearring();
 }
 
@@ -182,6 +184,7 @@ sub dbgdump
        my $l = shift;
        my $m = shift;
        if ($dbglevel{$l} || $l eq 'err') {
+               my @out;
                foreach my $l (@_) {
                        for (my $o = 0; $o < length $l; $o += 16) {
                                my $c = substr $l, $o, 16;
@@ -189,11 +192,12 @@ sub dbgdump
                                $c =~ s/[\x00-\x1f\x7f-\xff]/./g;
                                my $left = 16 - length $c;
                                $h .= ' ' x (2 * $left) if $left > 0;
-                               dbg($m . sprintf("%4d:", $o) . "$h $c");
+                               push @out, $m . sprintf("%4d:", $o) . "$h $c";
                                $m = ' ' x (length $m);
                        }
                }
-       }
+               dbg(@out) if isdbg($l); # yes, I know, I have my reasons;
+       } 
 }
 
 sub dbgadd