1. Started Changes file
[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 sub dbg
29 {
30         my $l = shift;
31         if ($dbglevel{$l}) {
32                 for (@_) {
33                         s/\n$//og;
34                         s/\a//og;   # beeps
35                 }
36                 print "@_\n" if defined \*STDOUT;
37                 my $t = time;
38                 $fp->writeunix($t, "$t^@_");
39         }
40 }
41
42 sub dbgadd
43
44         my $entry;
45         
46         foreach $entry (@_) {
47                 $dbglevel{$entry} = 1;
48         }
49 }
50
51 sub dbgsub
52 {
53         my $entry;
54         
55         foreach $entry (@_) {
56                 delete $dbglevel{$entry};
57         }
58 }
59
60 sub dbglist
61 {
62         return keys (%dbglevel);
63 }
64
65 sub isdbg
66 {
67         return $dbglevel{shift};
68 }
69 1;
70 __END__