一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • pythonのアノテーションで関数の開始と終了をログ出力する

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!

The following two tabs change content below.

WATANABE REN

千葉県在住のエンジニアです。最近はPythonやってます。

最新記事 by WATANABE REN (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア