tidy up for running with 'showdx' a bit more.
[spider.git] / perl / DXDebug.pm
index 14f8dbd2a06ad753c559d3ed9c2cb56a52d8045b..124ddfe1d73756c387468e7c27664ac1013df6ad 100644 (file)
@@ -11,10 +11,10 @@ package DXDebug;
 
 require Exporter;
 @ISA = qw(Exporter);
-@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose confess croak cluck);
+@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump dbglog isdbg dbgclose confess croak cluck);
 
 use strict;
-use vars qw(%dbglevel $fp $callback);
+use vars qw(%dbglevel $fp $callback $cleandays $keepdays);
 
 use DXUtil;
 use DXLog ();
@@ -23,6 +23,14 @@ use Carp ();
 %dbglevel = ();
 $fp = undef;
 $callback = undef;
+$keepdays = 10;
+$cleandays = 100;
+
+use vars qw($VERSION $BRANCH);
+$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /^\d+\.\d+(?:\.(\d+)\.(\d+))$/  || (0,0));
+$main::build += $VERSION;
+$main::branch += $BRANCH;
 
 # Avoid generating "subroutine redefined" warnings with the following
 # hack (from CGI::Carp):
@@ -160,6 +168,31 @@ sub longmess
        return Carp::longmess(@_);
 }
 
+# clean out old debug files, stop when you get a gap of more than a month
+sub dbgclean
+{
+       my $date = $fp->unixtoj($main::systime)->sub($keepdays+1);
+       my $i = 0;
+
+       while ($i < 31) {
+               my $fn = $fp->_genfn($date);
+               if (-e $fn) {
+                       unlink $fn;
+                       $i = 0;
+               } else {
+                       $i++;
+               }
+               $date = $date->sub(1);
+       }
+}
+
+sub dbglog
+{
+       my $sort = shift;
+       my $l = shift;
+       dbg($l);
+       DXLog::Log($sort, $l);
+}
 1;
 __END__