history_logみたいなので、関数やメソッドごとに、Aの関数スタート、終了みたいなのを自動でログで吐くのはできないかね

Pythonのデコレータを使用することで、関数やメソッドの開始と終了を自動的にログに記録することができます。以下は、そのようなデコレータを実装した例です。

python
import functools import logging # ログの設定 logging.basicConfig(filename='history.log', level=logging.INFO) def log_function_call(func): @functools.wraps(func) def wrapper(*args, **kwargs): logging.info(f"Function {func.__name__} started.") result = func(*args, **kwargs) logging.info(f"Function {func.__name__} finished.") return result return wrapper @log_function_call def example_function(x, y): return x + y # テスト用の呼び出し example_function(3, 4)

この例では、log_function_callデコレータを使用して関数の開始と終了をログに記録しています。@log_function_callデコレータを関数の上に付けることで、その関数が呼び出されるたびにログが出力されます。

同様の方法で、クラスのメソッドに対してもデコレータを適用することができます。

未分類

Posted by ぼっち