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:
14
ghp/log.py
14
ghp/log.py
@@ -104,29 +104,29 @@ class DedentLoggerMeta(type):
|
|||||||
for levelalias in _levels:
|
for levelalias in _levels:
|
||||||
level = levelalias[0]
|
level = levelalias[0]
|
||||||
aliases = levelalias[1:]
|
aliases = levelalias[1:]
|
||||||
setattr(obj, level, cls.wrap_level(getattr(obj, level)))
|
setattr(obj, level, cls.wrap()(getattr(obj, level)))
|
||||||
for alias in aliases:
|
for alias in aliases:
|
||||||
setattr(obj, alias, getattr(obj, level))
|
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
|
return obj
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def wrap(func):
|
def wrap(with_level=False):
|
||||||
|
def dedentlog(func):
|
||||||
|
if with_level:
|
||||||
def _dedent_log(self, level, msg, *args, **kwargs):
|
def _dedent_log(self, level, msg, *args, **kwargs):
|
||||||
dedent = kwargs.pop('dedent', True)
|
dedent = kwargs.pop('dedent', True)
|
||||||
if dedent:
|
if dedent:
|
||||||
msg = textwrap.dedent(msg)
|
msg = textwrap.dedent(msg)
|
||||||
func(self, level, msg, *args, **kwargs)
|
func(self, level, msg, *args, **kwargs)
|
||||||
return wraps(func)(_dedent_log)
|
else:
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def wrap_level(func):
|
|
||||||
def _dedent_log(self, msg, *args, **kwargs):
|
def _dedent_log(self, msg, *args, **kwargs):
|
||||||
dedent = kwargs.pop('dedent', True)
|
dedent = kwargs.pop('dedent', True)
|
||||||
if dedent:
|
if dedent:
|
||||||
msg = textwrap.dedent(msg)
|
msg = textwrap.dedent(msg)
|
||||||
func(self, msg, *args, **kwargs)
|
func(self, msg, *args, **kwargs)
|
||||||
return wraps(func)(_dedent_log)
|
return wraps(func)(_dedent_log)
|
||||||
|
return dedentlog
|
||||||
|
|
||||||
|
|
||||||
class DedentLogger(logging.Logger):
|
class DedentLogger(logging.Logger):
|
||||||
|
Reference in New Issue
Block a user