]> kaliko git repositories - mpd-sima.git/commitdiff
Add trace level to the logger
authorkaliko <kaliko@azylum.org>
Wed, 11 Feb 2015 22:51:11 +0000 (23:51 +0100)
committerkaliko <kaliko@azylum.org>
Wed, 11 Feb 2015 22:51:11 +0000 (23:51 +0100)
sima/lib/logger.py
sima/lib/webserv.py

index 09d7a69ce2c413cad9896366e5b9d2c953ef76cb..20794069111b6914bcaa3c1cd7a3db8740415bd5 100644 (file)
@@ -26,6 +26,8 @@ Logging facility for sima.
 import logging
 import sys
 
+from os import environ
+
 DEBUG = logging.DEBUG
 INFO = logging.INFO
 ERROR = logging.ERROR
@@ -37,6 +39,15 @@ LOG_FORMATS = {
         }
 DATE_FMT = "%Y-%m-%d %H:%M:%S"
 
+TRACE_LEVEL_NUM = 5
+logging.addLevelName(TRACE_LEVEL_NUM, 'TRACE')
+def trace(self, message, *args, **kwargs):
+    # Yes, logger takes its '*args' as 'args'.
+    if self.isEnabledFor(TRACE_LEVEL_NUM):
+        self._log(TRACE_LEVEL_NUM, message, args, **kwargs)
+
+logging.Logger.trace = trace
+
 
 def set_logger(level='info', logfile=None):
     """
@@ -46,7 +57,10 @@ def set_logger(level='info', logfile=None):
 
     """
     name = 'sima'
-    user_log_level = getattr(logging, level.upper())
+    if environ.get('TRACE', False):
+        user_log_level = TRACE_LEVEL_NUM
+    else:
+        user_log_level = getattr(logging, level.upper())
     if user_log_level > DEBUG:
         log_format = LOG_FORMATS.get(INFO)
     else:
index 0a04ddb5c505ae69464285d75aaf9209e70cca9b..6a127f469f3116b74418fb804aa0499d98e8b2c3 100644 (file)
@@ -269,6 +269,8 @@ class WebService(Plugin):
             self.log.warning('Got nothing from music library.')
             return []
         queued_artists = MetaContainer([trk.Artist for trk in self.player.queue])
+        self.log.trace('Already queued: {}'.format(queued_artists))
+        self.log.trace('Candidate: {}'.format(ret))
         if ret & queued_artists:
             self.log.debug('Removing already queued artists: '
                            '{0}'.format('/'.join(map(str, ret & queued_artists))))