Perl Filter and Perl API
[idzebra-moved-to-github.git] / perl / lib / IDZebra / Logger.pm
1 #!/usr/bin/perl
2 # ============================================================================
3 # Zebra perl API header
4 # =============================================================================
5 use strict;
6 use Carp;
7 # ============================================================================
8 package IDZebra::Logger;
9 use IDZebra;
10 require Exporter;
11 our @ISA = qw(Exporter);
12
13 our @EXPORT_OK = qw
14     (LOG_FATAL
15      LOG_DEBUG
16      LOG_WARN
17      LOG_LOG
18      LOG_ERRNO
19      LOG_FILE
20      LOG_APP
21      LOG_MALLOC
22      LOG_ALL
23
24      logf
25      logm
26      ); 
27         
28 our %EXPORT_TAGS = ('flags' => [qw
29                                 (LOG_FATAL
30                                  LOG_DEBUG
31                                  LOG_WARN
32                                  LOG_LOG
33                                  LOG_ERRNO
34                                  LOG_FILE
35                                  LOG_APP
36                                  LOG_MALLOC
37                                  LOG_ALL) ],
38                     'calls' => [qw(logf logm)]
39                     );
40
41 use constant LOG_FATAL  => $IDZebra::LOG_FATAL;
42 use constant LOG_DEBUG  => $IDZebra::LOG_DEBUG;
43 use constant LOG_WARN   => $IDZebra::LOG_WARN;
44 use constant LOG_LOG    => $IDZebra::LOG_LOG;
45 use constant LOG_ERRNO  => $IDZebra::LOG_ERRNO;
46 use constant LOG_FILE   => $IDZebra::LOG_FILE;
47 use constant LOG_APP    => $IDZebra::LOG_APP;
48 use constant LOG_MALLOC => $IDZebra::LOG_MALLOC;
49 use constant LOG_ALL    => $IDZebra::LOG_ALL;
50
51 1;
52
53 sub logm {
54     if (ref ($_[0])) {
55         &_log($_[1],"%s",$_[2]);
56     } 
57     elsif ($_[0] =~ /^IDZebra::/) {
58         &_log($_[1],"%s",$_[2]);
59     } else {
60         &_log($_[0],"%s",$_[1]);
61     }
62 }
63
64 sub logf {
65     if (ref ($_[0])) {
66         shift(@_);
67         &_log(@_);
68     } 
69     elsif ($_[0] =~ /^IDZebra::/) {
70         shift(@_);
71         &_log(@_);
72     } else {
73         &_log(@_);
74     }
75 }
76
77 sub _log {
78     my ($level, $format, @args) = @_;
79     IDZebra::logMsg($level, sprintf($format, @args));
80 }
81
82 __END__
83
84 =head1 NAME
85
86 IDZebra::Service - 
87
88 =head1 SYNOPSIS
89
90 =head1 DESCRIPTION
91
92 =head1 COPYRIGHT
93
94 Fill in
95
96 =head1 AUTHOR
97
98 Peter Popovics, pop@technomat.hu
99
100 =head1 SEE ALSO
101
102 IDZebra, IDZebra::Data1, Zebra documentation
103
104 =cut