import ConfigParser
import string
import os
+import syslog
import path
import log
import status
+
+syslog_facilities = {
+ 'kern': syslog.LOG_KERN,
+ 'user': syslog.LOG_USER,
+ 'mail': syslog.LOG_MAIL,
+ 'daemon': syslog.LOG_DAEMON,
+ 'auth': syslog.LOG_AUTH,
+ 'lpr': syslog.LOG_LPR,
+ 'news': syslog.LOG_NEWS,
+ 'uucp': syslog.LOG_UUCP,
+ 'cron': syslog.LOG_CRON,
+ 'local0': syslog.LOG_LOCAL0,
+ 'local1': syslog.LOG_LOCAL1,
+ 'local2': syslog.LOG_LOCAL2,
+ 'local3': syslog.LOG_LOCAL3,
+ 'local4': syslog.LOG_LOCAL4,
+ 'local5': syslog.LOG_LOCAL5,
+ 'local6': syslog.LOG_LOCAL6,
+ 'local7': syslog.LOG_LOCAL7
+}
+
class Builder_Conf:
def __init__(self):
self.done = 0
p = ConfigParser.ConfigParser()
def get(o, d = None):
if p.has_option(builder, o):
- return p.get(builder, o)
+ return string.strip(p.get(builder, o))
elif p.has_option("all", o):
- return p.get("all", o)
+ return string.strip(p.get("all", o))
elif d != None:
return d
else:
p.readfp(open(path.builder_conf))
+ if p.has_option("all", "syslog"):
+ f = p.get("all", "syslog")
+ if f != "":
+ if syslog_facilities.has_key(f):
+ log.open_syslog("builder", syslog_facilities[f])
+ else:
+ log.panic("no such syslog facility: %s" % f)
+
if builder == "src":
builder = get("src_builder", builder)
self.builder = builder
self.job_slots = int(get("job_slots"))
self.max_load = float(get("max_load"))
self.control_url = get("control_url")
+
+ f = get("syslog", "")
+ if f != "":
+ if syslog_facilities.has_key(f):
+ log.open_syslog(self.builder, syslog_facilities[f])
+ else:
+ log.panic("no such syslog facility: %s" % f)
+
self.done = 1
config = Builder_Conf()
import sys
import time
+import syslog
import path
builder = ""
+do_syslog = 0
-def log(s):
+def log(p, s):
+ if do_syslog:
+ syslog.syslog(p, s)
f = open(path.log_file, "a")
f.write("%s [%s]: %s\n" % (time.asctime(), builder, s))
f.close()
+def panic(s):
+ log(syslog.LOG_ALERT, "PANIC: %s" % s)
+ raise "PANIC: %s" % s
+
def alert(s):
- log("alert: %s" % s)
+ log(syslog.LOG_ALERT, "alert: %s" % s)
def error(s):
- log("error: %s" % s)
+ log(syslog.LOG_ERR, "error: %s" % s)
def warn(s):
- log("warning: %s" % s)
+ log(syslog.LOG_WARNING, "warning: %s" % s)
def notice(s):
- log("notice: %s" % s)
+ log(syslog.LOG_NOTICE, "notice: %s" % s)
-def panic(s):
- log("PANIC: %s" % s)
- raise "PANIC: %s" % s
+def open_syslog(name, f):
+ global do_syslog
+ do_syslog = 1
+ syslog.openlog(name, syslog.LOG_PID, f)