forked from flypythoncom/python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsyslogsample.py
More file actions
40 lines (28 loc) · 859 Bytes
/
syslogsample.py
File metadata and controls
40 lines (28 loc) · 859 Bytes
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
#!/usr/bin env python
#!--coding: utf-8--
import syslog,StringIO,sys,os,traceback
def logexception(includetraceback=0):
exctype,exception,exctraceback=sys.exc_info()
excclass=str(exception.__class__)
message=str(exception)
if not includetraceback:
syslog.syslog(syslog.LOG_ERR,"%s: %s" % (excclass,message))
else:
excfd=StringIO.StringIO()
traceback.print_exception(exctype,exception,exctraceback,None,excfd)
for line in excfd.getvalue().split("\n"):
syslog.syslog(syslog.LOG_ERR,line)
def initsyslog():
syslog.openlog("%s[%d]" % (os.path.basename(sys.argv[0]),os.getpid()),0,
syslog.LOG_DAEMON)
syslog.syslog("started.")
initsyslog()
try:
raise RuntimeError, "Exception 1"
except:
logexception(0)
try:
raise RuntimeError, "Exception 2"
except:
logexception(1)
syslog.syslog("I am a terimiting.")