From d72f781a1d078815b05db3f421e8fada0cbd1a64 Mon Sep 17 00:00:00 2001 From: Christian Herdtweck Date: Thu, 10 Sep 2015 17:55:37 +0200 Subject: [PATCH] renamed short-hand variables supr and levl to parent and shortlevel --- log_helpers.py | 46 ++++++++++++++++++++++++---------------------- 1 files changed, 24 insertions(+), 22 deletions(-) diff --git a/log_helpers.py b/log_helpers.py index 798301c..373e11f 100644 --- a/log_helpers.py +++ b/log_helpers.py @@ -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) -- 1.7.1