1

例を考えてみましょう:

debug.py:

import logging

class log_funcname:

    def __init__(self, the_logger):
        self.the_logger = the_logger

    def __call__(self, fn):
        def simply_call(*args, **kwargs):
            self.the_logger.critical(fn.func_name)
            return fn(*args, **kwargs)
        return simply_call

logger = logging.getLogger()

formatter = logging.Formatter("%(lineno)s")
ch = logging.StreamHandler()
ch.setFormatter(formatter)
logger.addHandler(ch)

@log_funcname(logger)
def hello():
  pass

hello()

出力:

$ python debug.py
10

ロガーを呼び出す関数を作成し、実行が実際に行われた行番号とファイル名を渡すつもりでした。サンプル アプリで 10 ではなく 25 を出力するようにしたい場合、何を変更すればよいでしょうか?

4

0 に答える 0