]>
jfr.im git - irc/quakenet/qwebirc.git/blob - util/syslog.py
2 Limited drop in replacement for the syslog module.
3 To use this symlink it into your PYTHONPATH.
6 from twisted
.internet
.protocol
import DatagramProtocol
9 from config
import SYSLOG_ADDR
as ADDR
12 protocol
, opened
= None, False
14 class __SyslogProtocol(DatagramProtocol
):
16 self
.pid
= os
.getpid() # FORK WARNING
19 if self
.transport
is None: # oh well, it's UDP =)
21 self
.transport
.write("<1> %s[%d]: %s\n" % (self
.ident
, self
.pid
, data
), ADDR
)
24 if self
.transport
is None:
26 self
.transport
.stopListening()
28 def __open_protocol():
35 from twisted
.internet
import reactor
36 reactor
.listenUDP(0, protocol
)
38 def __build_protocol(ident
=IDENT
):
41 if protocol
is not None:
44 protocol
= __SyslogProtocol()
45 protocol
.ident
= ident
52 def openlog(ident
, logopt
=None, facility
=None):
53 __build_protocol(ident
)
56 global protocol
, opened
65 def setlogmask(maskpri
):
68 if __name__
== "__main__":
69 from twisted
.internet
import reactor
75 LOG_ALERT
= LOG_AUTH
= LOG_CONS
= LOG_CRIT
= LOG_CRON
= LOG_DAEMON
= LOG_DEBUG
= LOG_EMERG
= LOG_ERR
= LOG_INFO
= \
76 LOG_KERN
= LOG_LOCAL0
= LOG_LOCAL1
= LOG_LOCAL2
= LOG_LOCAL3
= LOG_LOCAL4
= LOG_LOCAL5
= LOG_LOCAL6
= LOG_LOCAL7
= \
77 LOG_LPR
= LOG_MAIL
= LOG_NDELAY
= LOG_NEWS
= LOG_NOTICE
= LOG_NOWAIT
= LOG_PERROR
= LOG_PID
= LOG_SYSLOG
= \
78 LOG_UPTO
= LOG_USER
= LOG_UUCP
= LOG_WARNING
= 0
80 LOG_MASK
= LOG_UPTO
= lambda *args
, **kwargs
: 0