renamed short-hand variables supr and levl to parent and shortlevel
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Thu, 10 Sep 2015 15:55:37 +0000 (17:55 +0200)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Fri, 11 Sep 2015 07:16:23 +0000 (09:16 +0200)
log_helpers.py

index 798301c..373e11f 100644 (file)
@@ -18,8 +18,8 @@
 
 """ Helpers for logging
 
-ShortLevelFormatter: provide a 4-char-sized field "levl" for messge urgency
-(dbug/info/warn/err /crit)
+ShortLevelFormatter: provide a 4-char-sized field "shortlevel" for message
+urgency (dbug/info/warn/err /crit)
 
 Further ideas
 
@@ -35,11 +35,11 @@ from logging import Formatter, DEBUG, INFO, WARNING, ERROR, CRITICAL, NOTSET
 
 class ShortLevelFormatter(Formatter):
     """
-    Formatter for logging handlers that allows use of log format field "levl"
+    Formatter for logging handlers that allows use of format field "shortlevel"
 
     using this formatter, you can specify in the log message format string the
-    field "levl" which will introduce in your log messages a 4-char field for
-    the log record urgency: "DEBUG" --> "dbug", "INFO" --> "info",
+    field "shortlevel" which will introduce in your log messages a 4-char field
+    for the log record urgency: "DEBUG" --> "dbug", "INFO" --> "info",
     "WARNING" --> "warn", "ERROR" --> "err ", "CRITICAL" --> "crit"
 
     All other functionality (like other format fields) is inherited from base
@@ -51,7 +51,7 @@ class ShortLevelFormatter(Formatter):
         logger.setLevel(logging.DEBUG)
         handler = logging.StreamHandler()
         handler.setLevel(logging.DEBUG)
-        formatter = ShortLevelFormatter('%(levl)s| %(msg)s')
+        formatter = ShortLevelFormatter('%(shortlevel)s| %(msg)s')
         handler.setFormatter(formatter)
         logger.addHandler(handler)
 
@@ -64,49 +64,51 @@ class ShortLevelFormatter(Formatter):
     .. seealso:: testing funcion :py:func:`test_short_level_format`
     """
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, fmt=DEFAULT_SHORT_LEVEL_FORMAT,
+                 datefmt=DEFAULT_SHORT_LEVEL_DATE_FORMAT, *args, **kwargs):
         """ creates a new ShortLevelFormatter
 
         forwards all args to super class Formatter and initializes dict with
         levelno and short string representations
         """
-        self.supr = super(ShortLevelFormatter, self)
-        self.supr.__init__(*args, **kwargs)
-        self._levl_dict = {DEBUG: 'dbug', INFO: 'info', WARNING: 'warn',
-                           ERROR: 'err ', CRITICAL: 'crit', NOTSET: '----'}
+        self.parent = super(ShortLevelFormatter, self)
+        self.parent.__init__(fmt=fmt, datefmt=datefmt, *args, **kwargs)
+        self._shortlevel_dict = {DEBUG: 'dbug', INFO: 'info', WARNING: 'warn',
+                                 ERROR: 'err ', CRITICAL: 'crit',
+                                 NOTSET: '----'}
 
     def format(self, record):
         """ create string representation of given log record """
         try:
-            record.levl = self._levl_dict[record.levelno]
+            record.shortlevel = self._shortlevel_dict[record.levelno]
         except KeyError:
-            record.levl = '????'
+            record.shortlevel = '????'
 
-        return self.supr.format(record)
+        return self.parent.format(record)
 
-    def add_level(self, levelno, levl_str):
+    def add_level(self, levelno, shortlevel_str):
         """ add a new message urgency level
 
         :param int levelno: numeric urgency level
-        :param str levl_str: string representation of message urgency; should
-                             be of length 4
+        :param str shortlevel_str: string representation of message urgency;
+                                   should be of length 4
         :returns: nothing
         """
 
-        self._levl_dict[levelno] = levl_str
+        self._shortlevel_dict[levelno] = shortlevel_str
 
 
 def test_short_level_format():
     """ quick test of :py:class:`ShortLevelFormatter` """
 
-    import logging
     logger = logging.getLogger('logtest')
     logger.setLevel(DEBUG)
     handler = logging.StreamHandler()
     handler.setLevel(DEBUG)
-    formatter = ShortLevelFormatter('%(asctime)s:%(msecs)03d %(levl)s| %(msg)s'
-                                    '   [regular levelname=%(levelname)s]',
-                                    datefmt='%H:%M:%S')
+    formatter = ShortLevelFormatter(
+        '%(asctime)s:%(msecs)03d %(shortlevel)s| %(msg)s'
+        '   [regular levelname=%(levelname)s]',
+        datefmt='%H:%M:%S')
     handler.setFormatter(formatter)
     logger.addHandler(handler)