From 221beb767025340605e544749625291b4a6cd42b Mon Sep 17 00:00:00 2001 From: Izalia Mae Date: Sat, 13 Jun 2020 18:59:51 -0400 Subject: [PATCH] tweak logging config --- IzzyLib/__init__.py | 2 +- IzzyLib/logging.py | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/IzzyLib/__init__.py b/IzzyLib/__init__.py index 10d916b..049436e 100644 --- a/IzzyLib/__init__.py +++ b/IzzyLib/__init__.py @@ -8,4 +8,4 @@ import sys assert sys.version_info >= (3, 6) -__version__ = (0, 2, 0) +__version__ = (0, 3, 1) diff --git a/IzzyLib/logging.py b/IzzyLib/logging.py index 905caf6..28e566b 100644 --- a/IzzyLib/logging.py +++ b/IzzyLib/logging.py @@ -43,6 +43,14 @@ class Log(): return value + def _getLevelName(self, level): + for name, num in self.levels.items(): + if level == num: + return name + + raise error.InvalidLevel(f'Invalid logging level: {level}') + + def _parseConfig(self, config): '''parse the new config and update the old values''' date = config.get('date', self.config.get('date',True)) @@ -54,8 +62,11 @@ class Log(): if not isinstance(systemd, bool): raise TypeError(f'value for "systemd" is not a boolean: {date}') + level_num = self._lvlCheck(config.get('level', self.config.get('level', 'INFO'))) + return { - 'level': self._lvlCheck(config.get('level', self.config.get('level', 'INFO'))), + 'level': self._getLevelName(level_num), + 'levelnum': level_num, 'datefmt': config.get('datefmt', self.config.get('datefmt', '%Y-%m-%d %H:%M:%S')), 'date': date, 'systemd': systemd @@ -67,8 +78,13 @@ class Log(): self.config = self._parseConfig(config) - def getConfig(self): + def getConfig(self, key=None): '''return the current config''' + if key: + if self.get(key): + return self.get(key) + else: + raise ValueError(f'Invalid config option: {key}') return self.config @@ -84,11 +100,9 @@ class Log(): levelNum = self._lvlCheck(level) if type(level) == int: - for k,v in self.levels.items(): - if v == levelNum: - level = k + level = _getLevelName(level) - if levelNum < self.config['level']: + if levelNum < self.config['levelnum']: return message = ' '.join([str(message) for message in msg])