Convert similar decorators into single decorate that accepts an argument

Convert the slightly confusing naming of the two decoratories for
wrapping the different log methods to a single decorator than can accept
an argument to return a different wrapper function as needed.

Change-Id: Ifd3a694bc07573076b6e303f34a6ad0cc8f12989
This commit is contained in:
Darragh Bailey
2013-07-25 06:58:53 +01:00
parent 35756fbe1f
commit 8c83db470d

View File

@@ -104,29 +104,29 @@ class DedentLoggerMeta(type):
for levelalias in _levels:
level = levelalias[0]
aliases = levelalias[1:]
setattr(obj, level, cls.wrap_level(getattr(obj, level)))
setattr(obj, level, cls.wrap()(getattr(obj, level)))
for alias in aliases:
setattr(obj, alias, getattr(obj, level))
setattr(obj, 'log', cls.wrap(getattr(obj, 'log')))
setattr(obj, 'log', cls.wrap(True)(getattr(obj, 'log')))
return obj
@staticmethod
def wrap(func):
def _dedent_log(self, level, msg, *args, **kwargs):
dedent = kwargs.pop('dedent', True)
if dedent:
msg = textwrap.dedent(msg)
func(self, level, msg, *args, **kwargs)
return wraps(func)(_dedent_log)
@staticmethod
def wrap_level(func):
def _dedent_log(self, msg, *args, **kwargs):
dedent = kwargs.pop('dedent', True)
if dedent:
msg = textwrap.dedent(msg)
func(self, msg, *args, **kwargs)
return wraps(func)(_dedent_log)
def wrap(with_level=False):
def dedentlog(func):
if with_level:
def _dedent_log(self, level, msg, *args, **kwargs):
dedent = kwargs.pop('dedent', True)
if dedent:
msg = textwrap.dedent(msg)
func(self, level, msg, *args, **kwargs)
else:
def _dedent_log(self, msg, *args, **kwargs):
dedent = kwargs.pop('dedent', True)
if dedent:
msg = textwrap.dedent(msg)
func(self, msg, *args, **kwargs)
return wraps(func)(_dedent_log)
return dedentlog
class DedentLogger(logging.Logger):