96cc0ec256e6c9429071946518a01eee8c5de552
[spider.git] / perl / DXDebug.pm
1 #
2 # The system variables - those indicated will need to be changed to suit your
3 # circumstances (and callsign)
4 #
5 # Copyright (c) 1998 - Dirk Koopman G1TLH
6 #
7 # $Id$
8 #
9
10 package DXDebug;
11
12 require Exporter;
13 @ISA = qw(Exporter);
14 @EXPORT = qw(dbg dbgadd dbgsub dbglist isdbg);
15 @EXPORT_OK = qw(dbg dbgadd dbgsub dbglist isdbg);
16
17 use strict;
18 use vars qw(%dbglevel $fp);
19
20 use FileHandle;
21 use DXUtil;
22 use DXLog ();
23 use Carp;
24
25 %dbglevel = ();
26 $fp = DXLog::new('debug', 'dat', 'd');
27
28 no strict 'refs';
29
30 sub dbg
31 {
32         my $l = shift;
33         if ($dbglevel{$l}) {
34                 for (@_) {
35                         s/\n$//og;
36                         s/\a//og;   # beeps
37                 }
38                 print "@_\n" if defined \*STDOUT;
39                 my $t = time;
40                 $fp->writeunix($t, "$t^@_");
41         }
42 }
43
44 sub dbgadd
45
46         my $entry;
47         
48         foreach $entry (@_) {
49                 $dbglevel{$entry} = 1;
50         }
51 }
52
53 sub dbgsub
54 {
55         my $entry;
56         
57         foreach $entry (@_) {
58                 delete $dbglevel{entry};
59         }
60 }
61
62 sub dbglist
63 {
64         return keys (%dbglevel);
65 }
66
67 sub isdbg
68 {
69         return $dbglevel{shift};
70 }
71 1;
72 __END__