import logging import time from functools import wraps logger = logging.getLogger(__name__) def timer(func): """ Decorator der die Ausführungszeit einer Funktion misst und loggt. Verwendung: @timer def meine_funktion(): ... """ @wraps(func) # erhält __name__, __doc__ der originalen Funktion def wrapper(*args, **kwargs): logger.info(f"Starte Timer...") start = time.perf_counter() result = func(*args, **kwargs) elapsed = time.perf_counter() - start logger.info(f"{func.__name__}() dauerte {round(elapsed, 2)} Sekunden\n\n") return result return wrapper