def log_call(decorated, logger=None, level='info',
format_str=LOG_CALL_FMT_STR):
"""Log the parameters & results of a function call
Designed to be called via the ``after`` decorator with
``pass_params=True`` and ``pass_decorated=True``. Use
:any:`decorators.log_call` for easiest invocation.
:param Decorated decorated: decorated function information
:param Optional[logging.Logger] logger: optional logger instance
:param Optional[str] level: log level - must be an acceptable Python
log level, case-insensitive
:param format_str: the string to use when formatting the results
"""
if logger is None:
name = getmodule(decorated.wrapped).__name__
logger = getLogger(name)
log_fn = getattr(logger, level.lower())
msg = format_str.format(
name=decorated.wrapped.__name__,
args=decorated.args,
kwargs=decorated.kwargs,
result=decorated.result
)
log_fn(msg)
评论列表
文章目录