/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


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


1 #!/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 ############################################################################EOF

  ViewVC Help
Powered by ViewVC 1.1.26