deal with level given as string in I2nLogger.log or constructor
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 29 Jun 2016 15:03:43 +0000 (17:03 +0200)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 29 Jun 2016 15:03:43 +0000 (17:03 +0200)
src/log_helpers.py

index 3794f34..1cbd2cf 100644 (file)
@@ -217,6 +217,8 @@ class I2nLogger:
                              .format(name))
 
         self._log = logging.getLogger(name)
+        if isinstance(level, str):
+            level = LEVEL_DICT[level]
         self._level = min(MAX_LEVEL, max(MIN_LEVEL, level))
         self._log.setLevel(self._level)
 
@@ -253,36 +255,43 @@ class I2nLogger:
         _i2n_loggers[name] = self
 
     def dbg(self, message, *args, **kwargs):
-        self.log(DEBUG, message, *args, **kwargs)
+        self._log_no_test(DEBUG, message, *args, **kwargs)
 
     def debug(self, message, *args, **kwargs):
-        self.log(DEBUG, message, *args, **kwargs)
+        self._log_no_test(DEBUG, message, *args, **kwargs)
 
     def info(self, message, *args, **kwargs):
-        self.log(INFO, message, *args, **kwargs)
+        self._log_no_test(INFO, message, *args, **kwargs)
 
     def note(self, message, *args, **kwargs):
-        self.log(NOTICE, message, *args, **kwargs)
+        self._log_no_test(NOTICE, message, *args, **kwargs)
 
     def notice(self, message, *args, **kwargs):
-        self.log(NOTICE, message, *args, **kwargs)
+        self._log_no_test(NOTICE, message, *args, **kwargs)
 
     def warn(self, message, *args, **kwargs):
-        self.log(WARNING, message, *args, **kwargs)
+        self._log_no_test(WARNING, message, *args, **kwargs)
 
     def warning(self, message, *args, **kwargs):
-        self.log(WARNING, message, *args, **kwargs)
+        self._log_no_test(WARNING, message, *args, **kwargs)
 
     def err(self, message, *args, **kwargs):
-        self.log(ERROR, message, *args, **kwargs)
+        self._log_no_test(ERROR, message, *args, **kwargs)
 
     def error(self, message, *args, **kwargs):
-        self.log(ERROR, message, *args, **kwargs)
+        self._log_no_test(ERROR, message, *args, **kwargs)
 
     def critical(self, message, *args, **kwargs):
-        self.log(CRITICAL, message, *args, **kwargs)
+        self._log_no_test(CRITICAL, message, *args, **kwargs)
 
     def log(self, level, message, *args, **kwargs):
+        if isinstance(level, str):
+            level = LEVEL_DICT[level.lower()]
+        if level >= self._level:
+            self._log.log(level, message.format(*args), **kwargs)
+
+    def _log_no_test(self, level, message, *args, **kwargs):
+        """ same as log() but without the isinstance test for internal use"""
         if level >= self._level:
             self._log.log(level, message.format(*args), **kwargs)
 
@@ -333,7 +342,6 @@ def n_digits(number):
     else:
         return floor(log10(abs(number)))+1
 
-
 def is_interesting_count(counter):
     """ return True if counter has reached an "interesting" value