aboutsummaryrefslogtreecommitdiff
path: root/lib/App/Acmeman/Log.pm
blob: 72242c04f4afa67579c8ce6e49535cf2c1f763b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package App::Acmeman::Log;
use File::Basename;
use parent 'Exporter';

my @exv = qw(
        EX_OK        
	EX_USAGE     
	EX_DATAERR   
	EX_NOINPUT   
	EX_SOFTWARE  
	EX_OSFILE    
	EX_CANTCREAT 
	EX_NOPERM    
	EX_CONFIG
);

my @fnv = qw(error debug abend debug_level);

our @EXPORT_OK = (@fnv, @exv);
    
our %EXPORT_TAGS = (
    'all' => [@fnv],
    'sysexits' => [@exv]);

our $progname = basename($0);
our $debug_level = 0;

use constant {
    EX_OK           => 0,
    EX_USAGE        => 64,
    EX_DATAERR      => 65,
    EX_NOINPUT      => 66,
    EX_SOFTWARE     => 70,
    EX_OSFILE       => 72,
    EX_CANTCREAT    => 73,
    EX_NOPERM       => 77,
    EX_CONFIG       => 78
};

sub debug_level {
    my $lev = shift;
    if ($lev) {
	$debug_level = $lev;
    }
    $debug_level;
}

sub error {
    my $msg = shift;
    local %_ = @_;
    print STDERR "$progname: ";
    print STDERR "$_{prefix}: " if defined($_{prefix});
    print STDERR "$msg\n"
}

sub debug {
    my $l = shift;
    error(join(' ',@_), prefix => 'DEBUG') if $debug_level >= $l;
}

sub abend {
    my $code = shift;
    error(@_);
    exit $code;
}

1;

Return to:

Send suggestions and report system problems to the System administrator.