skytools.scripting: make non-skylog logging attach to root
authorMarko Kreen <markokr@gmail.com>
Fri, 14 Oct 2011 06:32:29 +0000 (09:32 +0300)
committerMarko Kreen <markokr@gmail.com>
Fri, 14 Oct 2011 06:32:29 +0000 (09:32 +0300)
use_skylog logging was already doing it.  Now that simple
logging does it do, using self.log is not mandatory anymore,
code can use 'logging' module directly.

Also make console and logfile output configurable.

python/skytools/scripting.py

index a7eb7915a687bb7f76d911a310f80962d5c51271..d671954ded2d9e7b7bbc83d8483321a7e1a0ae0c 100644 (file)
@@ -161,25 +161,29 @@ def _init_log(job_name, service_name, cf, log_level, is_daemon):
         return log
     _log_init_done[job_name] = 1
 
+    # tune level on root logger
+    root = logging.getLogger()
+    root.setLevel(log_level)
+
     # compatibility: specify ini file in script config
     logfile = cf.getfile("logfile", "")
     if logfile:
-        fmt = logging.Formatter('%(asctime)s %(process)s %(levelname)s %(message)s')
+        fstr = cf.get('logfmt_file', '%(asctime)s %(process)s %(levelname)s %(message)s')
+        fmt = logging.Formatter(fstr)
         size = cf.getint('log_size', 10*1024*1024)
         num = cf.getint('log_count', 3)
         hdlr = logging.handlers.RotatingFileHandler(
                     logfile, 'a', size, num)
         hdlr.setFormatter(fmt)
-        log.addHandler(hdlr)
+        root.addHandler(hdlr)
 
     # if skylog.ini is disabled or not available, log at least to stderr
     if not got_skylog:
+        fstr = cf.get('logfmt_console', '%(asctime)s %(process)s %(levelname)s %(message)s')
         hdlr = logging.StreamHandler()
-        fmt = logging.Formatter('%(asctime)s %(process)s %(levelname)s %(message)s')
+        fmt = logging.Formatter(fstr)
         hdlr.setFormatter(fmt)
-        log.addHandler(hdlr)
-
-    log.setLevel(log_level)
+        root.addHandler(hdlr)
 
     return log