import logging
from functools import wraps
# ログの設定
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def log_function(func):
@wraps(func)
def wrapper(*args, **kwargs):
logger.info(f"Function '{func.__name__}' started with args={args}, kwargs={kwargs}")
result = func(*args, **kwargs)
logger.info(f"Function '{func.__name__}' ended with result={result}")
return result
return wrapper
# 使用例
@log_function
def add(a, b):
return a + b
実行結果の例
2025-01-20 12:34:56,789 - INFO - Function 'add' started with args=(3, 5), kwargs={}
2025-01-20 12:34:56,789 - INFO - Function 'add' ended with result=8
2025-01-20 12:34:56,789 - INFO - Function 'greet' started with args=('Alice',), kwargs={}
2025-01-20 12:34:56,789 - INFO - Function 'greet' ended with result=Hello, Alice!