25 lines
666 B
Python
25 lines
666 B
Python
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 |