summaryrefslogtreecommitdiff
path: root/python/skytools/skylog.py
diff options
context:
space:
mode:
authormartinko2011-12-05 16:28:21 +0000
committermartinko2011-12-05 16:28:21 +0000
commit1a2a43087cb61b6cbcd32d78b5be378104ff5ca7 (patch)
tree4efe3bbfb8b63ef1044ef0ce003481662b06282d /python/skytools/skylog.py
parent42bc4ea7840ec07951924de14c1cfc820bc83cb1 (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.py21
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)