]> git.pld-linux.org Git - projects/pld-builder.new.git/commitdiff
- allow logging via syslog
authorMichal Moskal <michal@moskal.me>
Sun, 15 Jun 2003 14:02:34 +0000 (14:02 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    PLD_Builder/config.py -> 1.14
    PLD_Builder/log.py -> 1.6
    config/builder.conf -> 1.12

PLD_Builder/config.py
PLD_Builder/log.py
config/builder.conf

index eb7c002fe72d58830dfd6f8ffa9b3bb070691001..6895c1c2ecc42613893f512c28054fe7833b646f 100644 (file)
@@ -1,11 +1,33 @@
 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
@@ -15,9 +37,9 @@ class Builder_Conf:
     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:
@@ -25,6 +47,14 @@ class Builder_Conf:
     
     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
@@ -51,6 +81,14 @@ class Builder_Conf:
     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()
index 8b4cbf30822d11afe872a1d69dfa1c1c8531a9c6..c8d93d98e66aa9f5d70a40cc7bd6c4c189a13b18 100644 (file)
@@ -1,27 +1,36 @@
 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)
index 5adee2a20f87bd87808279e758dc8822af26a210..713d2b901e147a2b5b49ac3dbabd428a6cc83204 100644 (file)
@@ -6,6 +6,10 @@ admin_email = malekith@roke.freak
 binary_builders = roke-athlon
 # the only src builder
 src_builder = roke-src
+# logs always go to spool/log, if you want syslog in addition,
+# specify facility here (user or local0-7 is the best choice probably)
+# if you don't want syslog, leave it empty
+syslog = local0
 
 # ------ Binary builders config:
 # how much jobs can be run at once
This page took 0.155658 seconds and 4 git commands to generate.