]> granicus.if.org Git - python/commitdiff
Closes #27650: Implemented repr methods for logging objects.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Sat, 6 Aug 2016 09:28:31 +0000 (10:28 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Sat, 6 Aug 2016 09:28:31 +0000 (10:28 +0100)
Lib/logging/__init__.py

index fd422ea1e53e138876600a0fe1c0c91501642f18..4d872bd044dfd09e4da00fafae1c412a7796e4ae 100644 (file)
@@ -935,6 +935,10 @@ class Handler(Filterer):
             finally:
                 del t, v, tb
 
+    def __repr__(self):
+        level = getLevelName(self.level)
+        return '<%s (%s)>' % (self.__class__.__name__, level)
+
 class StreamHandler(Handler):
     """
     A handler class which writes logging records, appropriately formatted,
@@ -986,6 +990,14 @@ class StreamHandler(Handler):
         except Exception:
             self.handleError(record)
 
+    def __repr__(self):
+        level = getLevelName(self.level)
+        name = getattr(self.stream, 'name', '')
+        if name:
+            name += ' '
+        return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
+
+
 class FileHandler(StreamHandler):
     """
     A handler class which writes formatted logging records to disk files.
@@ -1050,6 +1062,11 @@ class FileHandler(StreamHandler):
             self.stream = self._open()
         StreamHandler.emit(self, record)
 
+    def __repr__(self):
+        level = getLevelName(self.level)
+        return '<%s %s (%s)>' % (self.__class__.__name__, self.baseFilename, level)
+
+
 class _StderrHandler(StreamHandler):
     """
     This class is like a StreamHandler using sys.stderr, but always uses
@@ -1542,6 +1559,11 @@ class Logger(Filterer):
             suffix = '.'.join((self.name, suffix))
         return self.manager.getLogger(suffix)
 
+    def __repr__(self):
+        level = getLevelName(self.getEffectiveLevel())
+        return '<%s %s (%s)>' % (self.__class__.__name__, self.name, level)
+
+
 class RootLogger(Logger):
     """
     A root logger is not that different to any other logger, except that
@@ -1668,6 +1690,11 @@ class LoggerAdapter(object):
         """
         return self.logger.hasHandlers()
 
+    def __repr__(self):
+        logger = self.logger
+        level = getLevelName(logger.getEffectiveLevel())
+        return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
+
 root = RootLogger(WARNING)
 Logger.root = root
 Logger.manager = Manager(Logger.root)