From 1a2a43087cb61b6cbcd32d78b5be378104ff5ca7 Mon Sep 17 00:00:00 2001 From: martinko Date: Mon, 5 Dec 2011 18:28:21 +0200 Subject: [PATCH] reworked custom logging init SkyLogger is no more installed automatically on scripting.py loading, rather exlicitly when our custom getLogger() function is called. --- python/skytools/__init__.py | 3 ++- python/skytools/scripting.py | 12 +----------- python/skytools/skylog.py | 21 ++++++++++++++++++++- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/python/skytools/__init__.py b/python/skytools/__init__.py index cba85716..f507fc09 100644 --- a/python/skytools/__init__.py +++ b/python/skytools/__init__.py @@ -110,6 +110,8 @@ _symbols = { 'run_query_row': 'skytools.querybuilder:run_query_row', # skytools.utf8 'safe_utf8_decode': 'skytools.utf8:safe_utf8_decode', + # skytools.skylog + 'getLogger': 'skytools.skylog:getLogger', } __all__ = _symbols.keys() @@ -130,4 +132,3 @@ else: from skytools.scripting import * from skytools.adminscript import * from skytools.querybuilder import * - diff --git a/python/skytools/scripting.py b/python/skytools/scripting.py index 8a24301b..70f7d500 100644 --- a/python/skytools/scripting.py +++ b/python/skytools/scripting.py @@ -118,16 +118,6 @@ def run_single_process(runnable, daemon, pidfile): # logging setup # -logging.TRACE = TRACE = 5 - -class SkyLogger (logging.getLoggerClass()): - def trace (self, msg, *args, **kwargs): - return self.log (TRACE, msg, *args, **kwargs) - -# start using our class when instantiating a logger -logging.addLevelName (TRACE, 'TRACE') -logging.setLoggerClass (SkyLogger) - _log_config_done = 0 _log_init_done = {} @@ -308,7 +298,7 @@ class BaseScript(object): if self.options.quiet: self.log_level = logging.WARNING if self.options.verbose > 1: - self.log_level = logging.TRACE + self.log_level = skytools.skylog.TRACE elif self.options.verbose: self.log_level = logging.DEBUG if self.options.ini: diff --git a/python/skytools/skylog.py b/python/skytools/skylog.py index 4ee05ed5..413d8a94 100644 --- a/python/skytools/skylog.py +++ b/python/skytools/skylog.py @@ -184,7 +184,7 @@ class LogDBHandler(logging.handlers.SocketHandler): if self.sock is None: self.createSocket() - + if self.sock: logcur = self.sock.cursor() query = "select * from log.add(%s, %s, %s)" @@ -214,3 +214,22 @@ class SysLogHostnameHandler(logging.handlers.SysLogHandler): raise except: self.handleError(record) + + +TRACE = 5 + +class SkyLogger (logging.getLoggerClass()): + def trace (self, msg, *args, **kwargs): + return self.log (TRACE, msg, *args, **kwargs) + +_skylogger_installed = False + +def getLogger (*args, **kwargs): + global _skylogger_installed + if not _skylogger_installed: + # start using our class when instantiating a logger + logging.addLevelName (TRACE, 'TRACE') + logging.setLoggerClass (SkyLogger) + logging.TRACE = TRACE + _skylogger_installed = True + return logging.getLogger (*args, **kwargs) -- 2.39.5