/[meteor]/googlecode.com/svn/trunk/Meteor/Syslog.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /googlecode.com/svn/trunk/Meteor/Syslog.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9 - (hide annotations)
Fri Dec 8 16:52:58 2006 UTC (13 years, 4 months ago) by andrew.betts
File size: 2916 byte(s)


1 andrew.betts 9 #!/usr/bin/perl -w
2     ###############################################################################
3     # Meteor
4     # An HTTP server for the 2.0 web
5     # Copyright (c) 2006 contributing authors
6     #
7     # Subscriber.pm
8     #
9     # Description:
10     # Convenience interface to syslog
11     #
12     ###############################################################################
13     #
14     # This program is free software; you can redistribute it and/or modify it
15     # under the terms of the GNU General Public License as published by the Free
16     # Software Foundation; either version 2 of the License, or (at your option)
17     # any later version.
18     #
19     # This program is distributed in the hope that it will be useful, but WITHOUT
20     # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21     # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
22     # more details.
23     #
24     # You should have received a copy of the GNU General Public License along
25     # with this program; if not, write to the Free Software Foundation, Inc.,
26     # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27     #
28     # For more information visit www.meteorserver.org
29     #
30     ###############################################################################
31    
32     package Meteor::Syslog;
33     ###############################################################################
34    
35     use strict;
36     use Sys::Syslog;
37    
38     ###############################################################################
39     # Configuration
40     ###############################################################################
41    
42     $Meteor::Syslog::DEFAULT_FACILITY='daemon';
43    
44     $Meteor::Syslog::_open=0; # set to 1 by _open
45    
46     ###############################################################################
47     # Implementation
48     ###############################################################################
49     sub ::syslog {
50    
51     if($::CONF{'Debug'})
52     {
53     my $priority=shift;
54     my $format=shift;
55    
56     $format=~s/\%m/$!/g;
57    
58     print STDERR "$::PGM($priority): ";
59     print STDERR sprintf($format,@_);
60     print STDERR "\n" unless(substr($format,-1) eq "\n");
61    
62     return;
63     }
64     else
65     {
66     # No expensive syslog calls for debug!
67     return if($_[0] eq 'debug');
68     }
69    
70     unless($Meteor::Syslog::_open)
71     {
72     my $facility=$::CONF{'SyslogFacility'} || $Meteor::Syslog::DEFAULT_FACILITY;
73     openlog($::PGM,0,$facility);
74     $Meteor::Syslog::_open=1;
75     }
76    
77     syslog(@_);
78     }
79    
80     sub myWarn {
81     local $SIG{'__DIE__'}='';
82     local $SIG{'__WARN__'}='';
83    
84     &::syslog('warning',$_[0]);
85     }
86    
87     sub myDie {
88     local $SIG{'__DIE__'}='';
89     local $SIG{'__WARN__'}='';
90    
91     my $inEval=0;
92     my $i=0;
93     my $sub;
94     while((undef,undef,undef,$sub)=caller(++$i))
95     {
96     $inEval=1, last if $sub eq '(eval)';
97     }
98    
99     unless($inEval)
100     {
101     &::syslog('err',$_[0]);
102     $Meteor::Socket::NO_WARN_ON_CLOSE=1;
103     exit;
104     }
105     }
106    
107     1;
108 andrew.betts 3 ############################################################################EOF

  ViewVC Help
Powered by ViewVC 1.1.26