Source code for spacr.logger

import logging
import functools

logger = logging.getLogger(__name__)

[docs] def log_function_call(func): @functools.wraps(func) def wrapper(*args, **kwargs): args_repr = [repr(a) for a in args] kwargs_repr = [f"{k}={v!r}" for k, v in kwargs.items()] signature = ", ".join(args_repr + kwargs_repr) logger.info(f"Calling {func.__name__}({signature})") try: result = func(*args, **kwargs) logger.info(f"{func.__name__} returned {result!r}") return result except Exception as e: logger.exception(f"Exception occurred in {func.__name__}") raise return wrapper