Kaydet (Commit) c0752011 authored tarafından Vinay Sajip's avatar Vinay Sajip

Closes #27650: Implemented repr methods for logging objects.

üst 933c66af
...@@ -935,6 +935,10 @@ class Handler(Filterer): ...@@ -935,6 +935,10 @@ class Handler(Filterer):
finally: finally:
del t, v, tb del t, v, tb
def __repr__(self):
level = getLevelName(self.level)
return '<%s (%s)>' % (self.__class__.__name__, level)
class StreamHandler(Handler): class StreamHandler(Handler):
""" """
A handler class which writes logging records, appropriately formatted, A handler class which writes logging records, appropriately formatted,
...@@ -986,6 +990,14 @@ class StreamHandler(Handler): ...@@ -986,6 +990,14 @@ class StreamHandler(Handler):
except Exception: except Exception:
self.handleError(record) 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): class FileHandler(StreamHandler):
""" """
A handler class which writes formatted logging records to disk files. A handler class which writes formatted logging records to disk files.
...@@ -1050,6 +1062,11 @@ class FileHandler(StreamHandler): ...@@ -1050,6 +1062,11 @@ class FileHandler(StreamHandler):
self.stream = self._open() self.stream = self._open()
StreamHandler.emit(self, record) StreamHandler.emit(self, record)
def __repr__(self):
level = getLevelName(self.level)
return '<%s %s (%s)>' % (self.__class__.__name__, self.baseFilename, level)
class _StderrHandler(StreamHandler): class _StderrHandler(StreamHandler):
""" """
This class is like a StreamHandler using sys.stderr, but always uses This class is like a StreamHandler using sys.stderr, but always uses
...@@ -1542,6 +1559,11 @@ class Logger(Filterer): ...@@ -1542,6 +1559,11 @@ class Logger(Filterer):
suffix = '.'.join((self.name, suffix)) suffix = '.'.join((self.name, suffix))
return self.manager.getLogger(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): class RootLogger(Logger):
""" """
A root logger is not that different to any other logger, except that A root logger is not that different to any other logger, except that
...@@ -1668,6 +1690,11 @@ class LoggerAdapter(object): ...@@ -1668,6 +1690,11 @@ class LoggerAdapter(object):
""" """
return self.logger.hasHandlers() 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) root = RootLogger(WARNING)
Logger.root = root Logger.root = root
Logger.manager = Manager(Logger.root) Logger.manager = Manager(Logger.root)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment