ほんじゃらねっと

ダイエット中プログラマのブログ

関数の呼び出しログを取る

デコレータ便利。この例では呼び出しと引数だけをログしてるけど、
処理にかかった時間の計測とか、色々できそう。


log.py

import logging
def log_api_call(func):
def decorator(*args, **kwargs):
logging.info("API: %s called. params: %s %s" % (func.func_name, str(args)[:200], str(kwargs)[:200]))
return func(*args,**kwargs)
return decorator


api.py

from project1.api.log import log_api_call
@log_api_call
def api1(arg1):
...