diff options
author | martinko | 2011-12-05 16:28:21 +0000 |
---|---|---|
committer | martinko | 2011-12-05 16:28:21 +0000 |
commit | 1a2a43087cb61b6cbcd32d78b5be378104ff5ca7 (patch) | |
tree | 4efe3bbfb8b63ef1044ef0ce003481662b06282d /python/skytools/skylog.py | |
parent | 42bc4ea7840ec07951924de14c1cfc820bc83cb1 (diff) |
reworked custom logging init
SkyLogger is no more installed automatically on scripting.py loading,
rather exlicitly when our custom getLogger() function is called.
Diffstat (limited to 'python/skytools/skylog.py')
-rw-r--r-- | python/skytools/skylog.py | 21 |
1 files changed, 20 insertions, 1 deletions
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) |